我必须在 Hybris Commerce Suite 中编写一些集成测试类,它们中的大多数共享一个共同的行为来设置系统(站点、商店、目录、国家、...)或执行一些常见的操作,如创建客户。
我创建了一个抽象类,它使用 @Before 方法中的常量值和一些常用方法(如 createDefaultCustomer())执行所有初始化。
我所有的测试类都继承自这个类。
常量值在不同的常量类中分开,例如
abstract class AbstractTest {
protected static final class USER_CONSTANTS {
};
protected static final class CATALOG_CONSTANTS {
};
protected UserModel createDefaultUser() {
}
}
现在,为了测试,在我的子类中我可以做
createDefaultUser();
UserData userData = userFacade.getUserById(USER_CONSTANTS.ID);
assertEquals(USER_CONSTANTS.ID, userData.getId());
如果我不这样做,那么测试类中有很多重复。
我怀疑这是否可以接受,因为抽象类往往很长且方法丰富,或者我需要更改设计。我会避免为每组常量创建单独的类。