Testing framework

Because the name can be different than the default, which is cls.__name__.lower(), and that can be custom set by someone