草庐IT

java - 使用数据提供者编写 Java 测试

我目前正在做我的第一个Java项目,并希望对其进行完全的TDD。我正在使用JUnit编写测试。显然JUnit不支持dataproviders,这使得用20个不同版本的参数测试相同的方法相当烦人。支持数据提供者的最流行/标准的Java测试工具是什么?我遇到了TestNG,但不知道它有多受欢迎,或者它与替代品相比如何。如果有一种方法可以让这种行为成为使用JUnit的好方法,那么它也可能有效。 最佳答案 我公司的同事为JUnit编写了一个免费的TestNG风格的DataProvider,您可以找到ongithub(https://gith

java - 使用数据提供者编写 Java 测试

我目前正在做我的第一个Java项目,并希望对其进行完全的TDD。我正在使用JUnit编写测试。显然JUnit不支持dataproviders,这使得用20个不同版本的参数测试相同的方法相当烦人。支持数据提供者的最流行/标准的Java测试工具是什么?我遇到了TestNG,但不知道它有多受欢迎,或者它与替代品相比如何。如果有一种方法可以让这种行为成为使用JUnit的好方法,那么它也可能有效。 最佳答案 我公司的同事为JUnit编写了一个免费的TestNG风格的DataProvider,您可以找到ongithub(https://gith

java - 升级到 2.7 ClassNotFoundException : org. mockito.exceptions.Reporter 后运行测试

我尝试将junit、mokito和powermock一起设置,但是当我运行测试时,我得到ClassNotFoundException:(testCompile'junit:junit:4.12'testCompile'org.mockito:mockito-core:2.7.22'androidTestCompile'org.mockito:mockito-core:2.7.22'androidTestCompile"org.mockito:mockito-android:2.7.22"testCompile'org.robolectric:robolectric:3.3.2'test

java - 升级到 2.7 ClassNotFoundException : org. mockito.exceptions.Reporter 后运行测试

我尝试将junit、mokito和powermock一起设置,但是当我运行测试时,我得到ClassNotFoundException:(testCompile'junit:junit:4.12'testCompile'org.mockito:mockito-core:2.7.22'androidTestCompile'org.mockito:mockito-core:2.7.22'androidTestCompile"org.mockito:mockito-android:2.7.22"testCompile'org.robolectric:robolectric:3.3.2'test

java - 为什么 JUnit 中的 @Rule 注释字段必须是公开的?

在JUnit测试用例中,由@Rule注释的字段必须是公共(public)的。它打破了常见的Java编码约定(所有类成员变量都不应该是公共(public)的)。为什么JUnit需要这个?@Rule的文档:https://github.com/junit-team/junit/blob/master/src/main/java/org/junit/Rule.java 最佳答案 JUnit运行器将需要以反射方式访问该字段以运行规则。如果该字段是私有(private)的,则访问将抛出IllegalAccessException。另一种选择是

java - 为什么 JUnit 中的 @Rule 注释字段必须是公开的?

在JUnit测试用例中,由@Rule注释的字段必须是公共(public)的。它打破了常见的Java编码约定(所有类成员变量都不应该是公共(public)的)。为什么JUnit需要这个?@Rule的文档:https://github.com/junit-team/junit/blob/master/src/main/java/org/junit/Rule.java 最佳答案 JUnit运行器将需要以反射方式访问该字段以运行规则。如果该字段是私有(private)的,则访问将抛出IllegalAccessException。另一种选择是

java - 自定义 JUnit 报告?

我正在使用ant任务“junit”和“junitreport”来运行我的JUnit测试并在最后生成报告(=>“单元测试结果”)。是否有一些简单的方法可以以某种方式扩展此输出以在报告中显示更多信息?例如,添加一个附加列,其中包含指向测试截取的屏幕截图的链接。我看到有人可以编写自己的antjunit测试运行程序,例如EclipseTestRunner。但这是相当大的努力。是否没有API可以访问单元报告的元素? 最佳答案 junitreport任务使用XSLT从junit生成的XML文件生成报告任务。您可以通过使用styledir指定您自

java - 自定义 JUnit 报告?

我正在使用ant任务“junit”和“junitreport”来运行我的JUnit测试并在最后生成报告(=>“单元测试结果”)。是否有一些简单的方法可以以某种方式扩展此输出以在报告中显示更多信息?例如,添加一个附加列,其中包含指向测试截取的屏幕截图的链接。我看到有人可以编写自己的antjunit测试运行程序,例如EclipseTestRunner。但这是相当大的努力。是否没有API可以访问单元报告的元素? 最佳答案 junitreport任务使用XSLT从junit生成的XML文件生成报告任务。您可以通过使用styledir指定您自

java - 当 JUnit 5 没有 assertThat() 函数时,如何将 Hamcrest 与 JUnit 5 一起使用?

要将Hamcrest与JUnit4一起使用,我们使用assertThat()函数。但是,JUnit5将不再具有assertThat()函数。如何在没有assertThat()的情况下使用Hamcrest? 最佳答案 您必须确保Hamcrest包含在类路径中,然后使用Hamcrest提供的assertThat()函数。从当前JUnit5UserGuide-WritingTestsAssertions,JUnitJupiter’sorg.junit.jupiter.Assertionsclassdoesnotprovideanasser

java - 当 JUnit 5 没有 assertThat() 函数时,如何将 Hamcrest 与 JUnit 5 一起使用?

要将Hamcrest与JUnit4一起使用,我们使用assertThat()函数。但是,JUnit5将不再具有assertThat()函数。如何在没有assertThat()的情况下使用Hamcrest? 最佳答案 您必须确保Hamcrest包含在类路径中,然后使用Hamcrest提供的assertThat()函数。从当前JUnit5UserGuide-WritingTestsAssertions,JUnitJupiter’sorg.junit.jupiter.Assertionsclassdoesnotprovideanasser