我使用JUnit对我的应用程序进行单元测试。它使用(或尝试使用......)MVP模式,休眠和摇摆gui。
在我的测试中,我正在测试持久性是否按预期工作,例如是日期格式正确,数据库表之间的关系是否正确等等。
这是一个(编辑过的)示例:
@Test
public void testCheckBeitragCalculation() {
MainView view = new MainView();
view.initGUI();
Controller persist = new Controller(view);
persist .saveData(testObject);
Controller edit = new Controller(view);
Controller search = new Controller(edit);
search.getData("10001"); // primary key
TestObject t2 = edit.getViewData();
assertEquals(10, t2.getBeitrag());
}
我启动主视图,因为两个控制器需要对主视图的引用才能传递数据。
控制器persist
持久保存对象,控制器edit
是编辑视图的控制器,而控制器search
需要对edit
的引用,因为它会查找数据库,然后通过edit
控制器在编辑视图中显示此数据。
因为这些控制器在GUI中显示数据,所以GUI在单元测试期间显示为瞬间。
这是不好的做法吗?我已经读过你不应该测试GUI代码,但是我没有测试GUI本身,它只是被测试代码调用。
感谢您的建议!
答案 0 :(得分:0)
对此没有正确的答案。一般来说,如果它解决了你的目的,那么你可以继续这样做但是如果将来你的产品构建系统将这些junit测试用例添加到每次构建之后通过预定的每日构建(例如jenkins)和构建运行的框(通常是一些)服务器)不支持任何UI(或在特定时间不可用),如XWindows,那么您的测试可能会失败。