草庐IT

Junit-Tests

全部标签

java - JUnit @Ignore 所有其他测试(@IgnoreOther?)

我正在使用JUnit进行大量测试,有时-在调试我的代码时-我希望(临时)只运行我的@RunWith(Arquillian.class)@Test测试类。目前我正在向所有其他测试添加一个@Ignore并想知道是否存在类似@IgnoreOther的东西。是否有更好的解决方案来忽略所有其他测试? 最佳答案 最简单的方法是将所有的@Test替换为//###$$$@Test。然后,当您完成调试后,将//###$$$@Test替换为@Test。此外,IDE通常只允许运行一个测试。例如,在Eclipse中,您可以从大纲View中执行此操作。

java - 方法中的每个可能分支都应该有一个单独的 junit 吗?

这更像是一个设计问题。假设您有这样的方法(作为示例):if(x==5){c=1;}else{if(z!=2){b=6;}else{a=3;}您认为为每个可能的分支配备一个junit是最佳实践吗?即,testx5、testxnot5znot2、testxnot5z2等,或类似的东西:voidtestMethod(){//xis5test/assertcode;//xnot5,znot2test/assertcode;//xnot5,zis2test/assertcode//etc}编辑:明确一点,我的目标是完成代码覆盖。我只想知道是否应该为每个分支进行新测试或将它们组合在一个测试中的意见

java - 如何定义在 Intellij 中运行 junit 测试的顺序?

我有一个不稳定的junit测试,只有在我运行所有测试时才会失败。我认为一个测试导致另一个测试失败,我想在尝试修复它之前证明这一点。如果我运行所有测试,它会运行“错误设置”,然后运行“错误设置后失败的测试”。它还在其间运行许多不相关的、缓慢的测试。但是如果我使用一种模式只运行这两个,它会运行“错误设置后失败的测试”,然后是“错误设置”。结果,两者都通过了。如何按顺序只运行“错误设置”和“错误设置后失败的测试”? 最佳答案 根据JUnit'swiki:Bydesign,JUnitdoesnotspecifytheexecutionord

java - 在 JUnit 测试中模拟对象 - 最佳实践?

按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter指导。关闭10年前。您认为在JUnit测试中模拟对象是最佳实践吗?我看不出有什么大的优势。当然,如果您有一个不应在测试中考虑的数据库,那是有道理的,但为什么不注入(inject)该组件的其他实现(如果使用spring)。用于测试的对象工厂将使这变得容易得多。我没有太多经验(我们正在使用Mockito),但我已经看到,应用程序代码被修改,以便某些属性可以模拟!在我看来,测试用

java - @EntityListeners 注入(inject) + jUnit 测试

我使用@EntityListeners在保存到Db之前和加载之后进行操作。在我的Listener类中,我调用了一个Ecryptor(它需要从配置文件中获取信息),因此不能静态调用加密器,需要将其注入(inject)到我的Listener中。对吧?嗯,EntityListeners中的注入(inject)不能立即完成,但您有一些方法可以做到这一点,例如使用SpringBeanAutowiringSupport.processInjectionBasedOnCurrentContext(this);甚至这里显示的方法。https://guylabs.ch/2014/02/22/autowi

java - 在 JUnit 测试的上下文中使用 OSGi 声明式服务

我正在尝试弄清楚如何使用JUnit在OSGi中实现多包集成测试。对于集成测试,我的意思是实例化bundle的一个子集以自动验证该子系统中的功能。我们正在运行Equinox并使用Eclipse作为工具链。Eclipse提供了“作为JUnit插件运行”选项,它启动了OSGi框架并实例化了配置包,所以我想这是要遵循的路径,但我找不到将DS引用注入(inject)我的测试的方法。我已经看到使用ServiceTracker作为访问不同服务包的编程方式,但这超出了拥有DS的目的,不是吗?我刚刚开始使用OSGI,所以我想我只是遗漏了一些可以让我将多捆绑测试放在一起的拼图。有什么想法吗?谢谢,杰拉德。

java - 尽管抛出了预期的异常,但 JUnit 测试失败

我似乎无法弄清楚为什么我的一个测试失败了。这是测试:@Test(expected=IllegalArgumentException.class)publicvoidcomplainsIfFromLocIsDifferentObject()throwsThrowable{board.set(make(),1,3);//Createsdifferentrookfrom'piece'assertFalse("ChessPieceTest2",piece.isValidMove(getValidMove(1,3),board));}我设置了一个断点并多次执行该过程。它进入ChessPiece类

java - 测试套件在 JUnit5 中是否被认为已弃用?

我正在尝试使用JUnit5创建测试套件。经过一些研究后,我无法断定它是否是受支持的功能。officialuserguide仅提及与JUnit4向后兼容的套件。这是JUnit4中的做法:@RunWith(Suite.class)@SuiteClasses({Test1.class,Test2.class})publicclassTestSuite{}这是否意味着,测试套件现在已被弃用,或者相同的概念是否仍然可以使用其他名称? 最佳答案 Doesthismean,thatTestSuitesareconsidereddeprecated

java - JUnit @Rule 生命周期与@Before 交互

我有一些使用TemporaryFolder@Rule的JUnit测试。他们在@Before方法中使用TemporaryFolder来执行一些设置:@RulepublicTemporaryFolderfolder=newTemporaryFolder();@Beforepublicvoidinit(){folder.newFile("my-file.txt");}@TestpublicvoidmyTest(){...}大多数情况下这都能完美运行。但是,在使用SpringJUnit4ClassRunner时,我发现在某些情况下,在TemporaryFolderStatement之前调用了i

java - 用于比较器的 Junit 匹配器?

这几天我一直在使用Junit的Matchers功能。一切正常,但我正在寻找一个匹配器,它使用比较器进行比较并且不依赖于对象等于方法。我要更换Assert.assertThat(one,CoreMatchers.equalTo(two)用类似(伪代码)的东西Assert.assertThat(eins,CoreMatchers.equalTo(operand,newMyComparator())您知道是否存在简单的开箱即用解决方案?我没有在谷歌中找到一个,也不想写一个。 最佳答案 Hamcrest2.0.0.0+现在支持此功能。您可以