Java 在单元测试期间gui应该是可见的吗?
我正在用JUnit对我的应用程序进行单元测试。它使用或试图使用。。。MVP模式、hibernate和swing gui 在我的测试中,我正在测试持久性是否按预期工作,例如日期格式是否正确,数据库表之间的关系是否正确,等等 下面是一个经过编辑的示例:Java 在单元测试期间gui应该是可见的吗?,java,unit-testing,user-interface,Java,Unit Testing,User Interface,我正在用JUnit对我的应用程序进行单元测试。它使用或试图使用。。。MVP模式、hibernate和swing gui 在我的测试中,我正在测试持久性是否按预期工作,例如日期格式是否正确,数据库表之间的关系是否正确,等等 下面是一个经过编辑的示例: @Test public void testCheckBeitragCalculation() { MainView view = new MainView(); view.initGUI(); Controller per
@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());
}
我启动主视图是因为两个控制器需要对主视图的引用来传递数据
控制器持久化对象,控制器编辑是编辑视图的控制器,控制器搜索需要编辑引用,因为它在数据库中查找实体,然后通过编辑控制器在编辑视图中显示此数据
因为这些控制器在GUI中显示数据,所以GUI在单元测试期间会在瞬间显示数据
那是坏习惯吗?我已经读到不应该测试GUI代码,但我不是在测试GUI本身,它只是被测试代码调用
谢谢你的建议 对此没有正确的答案。一般来说,如果它解决了您的目的,那么您可以继续进行此操作,但是,如果将来您的产品构建系统添加这些junit测试用例,以便在每次构建之后通过计划的每日构建来执行,例如jenkins和构建运行的方框,一些服务器不支持任何UI,或者在特定时间不可用,例如XWindows则您的测试可能会失败。如果您在Linux上没有显示构建服务器的机器上运行这些测试。。。你会有麻烦的。在测试控制器/模型时,您可能希望签出mockito之类的模拟框架来隐藏您的UI否否否。单元测试必须测试单元,而不是整个应用程序。另外,如果您正在传递MainView,它是一个类,而不是一个接口!在控制器中,这两者耦合得太紧。