我是Junit的新手,我目前正在尝试测试一些与简单用户界面相对应的API,其中包含许多复选框和几个文本字段。
我现在想到的是用以下结构写一些东西:
testButtonOne()
testButtonTwo()
。 。
testButtonTen()
testCheckboxOne()包含许多输入,例如空格,无效字符,非常长的字符串等
testCheckboxTwo()包含许多输入,例如空格,无效字符,非常长的字符串等
我试图在两个文件中编写测试,一个是单个运行,一个是参数化运行,但问题是我必须写@BeforeClass @Before @After两次,所以我想知道什么会更好这样写测试的方法。
答案 0 :(得分:1)
你应该使用其中之一 https://github.com/junit-team/junit4/wiki/parameterized-tests
或者更好,我认为你应该看看 https://github.com/pholser/junit-quickcheck
使用junit-quickcheck的示例项目 看到这个例子github项目 https://github.com/bfayette/lottery/blob/master/src/test/java/com/silanis/lottery/PrizeCalculatorTest.java
答案 1 :(得分:0)
您可以在此处查看:Testing GUI with JUnit
主要思想是,最好将GUI与业务逻辑和其他层分离。通过这种方式,GUI层将仅包含GUI特定代码,因此测试将变得更容易,并且它的价值将降低。这样你就可以在GUI类中模拟你的服务,并且只是验证,例如,如果你在EditBox中输入一些文本,它的值将作为特定服务调用的参数(在这种情况下,我不会这样做)。你认为你需要编写参数化单元测试),然后你可以分别测试服务层。您可以获得验证服务,也可以单独测试。使用这种方法测试通常会变得更清晰,更具体,而不是那么广泛,这就是单元测试背后的想法。
如果仍需要用于测试GUI的参数化单元测试,则可以同时进行参数化和非参数化测试,并按照此处所述的一个测试类的嵌套类进行分组:https://stackoverflow.com/a/28203229/9329760