草庐IT

Junit-Tests

全部标签

java - JUnit 封闭式​​运行器和共享设置

我正在试验JUnitEnclosed运行程序,以尝试改进我的一些测试的组织。目前我正在尝试研究如何在内部类之间共享一些设置。尝试第一个:@RunWith(Enclosed.class)publicclassEnclosedTest{@BeforepublicvoidprintSomething(){System.out.println("HellloooMeggan");}publicstaticclassFirstTest{@TestpublicvoidassertThatSomethingIsTrue(){assertThat(true,is(true));}}publicstat

java - Junit 保护方法

我想知道在Junit中处理protected方法的好方法。假设我想测试一个名为A的类,它有一个protected成员和构造函数。我知道为了测试A类,我应该编写另一个名为ATest的类,它可能会扩展TestCase(这在Junit3中应该是强制性的)。因为我想测试一个protected方法并且因为A有一个protected构造函数,所以我的测试类ATest还应该扩展实现该方法的类A,以便能够创建该类并访问该方法。两个类的双重继承是否是一个不错的解决方案?P.S我已经知道在Junit4中可以避免从TestCase继承。 最佳答案 要访问

java - 对于 String,推荐使用 assertTrue() 或 assertEquals() 的 JUnit?

我的代码如下@TestpublicvoidtestMyMethod(){MyClassmc=newMyClass();StringexeVal="sometextsometext";Stringx=mc.exampleMethod();//Assertiontype1Assert.assertEquals(exeVal,x);//AssertionType2Assert.assertTrue(exeVal.equals(x));}我想知道哪种方法最好。 最佳答案 首选类型1,因为当它们不匹配时您将收到断言消息。org.junit.C

java - 如果 JUnit 覆盖率低于特定阈值,如何使 Maven 构建失败

我正在从sonarrestapi获取单元测试覆盖率指标。如果构建低于定义的值,我该如何使构建失败? 最佳答案 JaCoCo提供该功能。具有配置规则的JaCoCo使用配置规则定义JaCoCo插件COVEREDRATIO对于LINE和BRANCH:org.jacocojacoco-maven-plugin0.7.7.201606060606default-prepare-agentprepare-agentcheckcheckCLASSLINECOVEREDRATIO0.80BRANCHCOVEREDRATIO0.80com.xyz.C

java - 如何在运行时获取 JUnit 4 中的测试用例名称?

这个问题在这里已经有了答案:GetnameofcurrentlyexecutingtestinJUnit4(16个答案)关闭9年前。我想在执行JUnit测试时进行一些日志记录。在JUnit3.x中,总是很容易获得当前运行的测试用例的名称,无论测试用例是如何实例化的:publicvoidtestFoo()throwsException(){StringtestName=this.getName();//[...]dosomestuff}在JUnit4中,事情似乎并不那么容易。有谁知道这个的解决方案?是否有任何选项可以反射(reflect)到当前的Runner实例中?

java - junit 3 中的类拆解?

我们有很多使用JUnit3编写的集成测试,尽管我们现在使用4.4运行它们。其中一些需要在类中的所有测试完成后运行的tearDown方法(以释放一些公共(public)资源)。我看到这可以在junit4中使用@AfterClass(org.junit)完成。但是,将其混合到扩展TestCase(junit.framework.*)的现有junit3测试中似乎不起作用。[BTW有迁移工具吗?问题264680表示一年前没有。]我看到有人提到使用junit.extensions.TestSetup来做这类事情。我对此的简短测试似乎没有用。有例子吗? 最佳答案

java - JUnit4 根据自定义 java 注释跳过测试

我希望我的JUnit4测试根据我用Java创建的自定义注释执行。此自定义注释的目的是让JUnit4注意到只有当机器的平台与注释中指定的平台相匹配时才应运行测试。假设我有以下注释:public@interfaceAnnotations{StringOS();...}以及以下测试:publicclassmyTests{@BeforeClasspublicsetUp(){...}@Annotations(OS="mac")@TestpublicmyTest1(){...}@Annotations(OS="windows")@TestpublicmyTest2(){...}@Annotatio

java - 记录运行 JUnit 测试所需的时间

我想记录我的JUnit测试以编程方式运行需要多长时间。我在各种测试类中有大量测试,我想找出每个单独的测试方法运行需要多长时间。我可以更改继承结构或以不同方式注释方法,但我想避免在测试方法本身以及用于设置测试业务逻辑的之前/之后方法中添加代码。 最佳答案 您可以使用JUnitStopWatch规则并覆盖JUnitAPI文档中提供的方法,只需在每个单独的测试用例类中包含一行代码,即可将时间打印到每个测试的控制台或日志文件中。创建您的客户秒表类(提供示例)importjava.util.concurrent.TimeUnit;import

java - junit 4.10如何在测试开始运行之前打印测试用例名称

这个问题在这里已经有了答案:GetnameofcurrentlyexecutingtestinJUnit4(16个答案)关闭8年前。junit4.10如何在测试开始运行前打印测试用例名称..所以在这里我想打印“sampleTest”。我如何在junit4.10中执行此操作?提前谢谢你class1:TestSuiteall=newTestSuite();all.addTestSuite(class2);all.run(result);class2:publicclassprofileTestextendsTestCase(){//Iwanttoprintthetestcasesnameb

java - 在 JUnit 的测试类中定义内部类时出错

我在为JUnit3从TestCase继承的Test类中定义内部类时遇到一些问题。场景如下:Foo.javapublicclassFoo{publicvoidmethod(){...}}FooTest.javapublicclassFooTestextendsTestCase{publicclassBarextendsFoo{publicvoidmethod(){...}}publicvoidtestMethod(){...}}现在,如果我从Eclipse运行它,测试运行正常,但如果我尝试从Ant任务运行,它会失败:[junit]junit.framework.AssertionFail