在单元测试期间应该可见吗?

时间:2015-11-24 10:59:25

标签: java unit-testing user-interface

我使用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本身,它只是被测试代码调用。

感谢您的建议!

1 个答案:

答案 0 :(得分:0)

对此没有正确的答案。一般来说,如果它解决了你的目的,那么你可以继续这样做但是如果将来你的产品构建系统将这些junit测试用例添加到每次构建之后通过预定的每日构建(例如jenkins)和构建运行的框(通常是一些)服务器)不支持任何UI(或在特定时间不可用),如XWindows,那么您的测试可能会失败。