草庐IT

java - junit-jupiter-api 和 junit-jupiter-engine 的区别

maven模块junit-jupiter-api和junit-jupiter-engine有什么区别?是否需要在build.gradle中同时包含这两个依赖项?我需要同时提供这两个依赖项吗?testCompile("org.junit.jupiter:junit-jupiter-engine:${junitVersion}")testCompile("org.junit.jupiter:junit-jupiter-api:${junitVersion}")或者只有一个依赖就足够了?testCompile("org.junit.jupiter:junit-jupiter-engine:$

java - Junit - 多个 @Before 与一个 @Before 拆分为方法

在单元测试中,我需要执行一个相当复杂的设置(这可能是代码异味,但这不是这个问题的主题:-))。我感兴趣的是,是让多个@Before方法执行设置更好,还是只有一个方法更好,它调用辅助方法来执行初始化。例如@BeforepublicvoidsetUpClientStub(){}@BeforepublicvoidsetUpObjectUnderTest(){}对比@BeforepublicvoidsetUp(){setUpClientStub();setUpObjectUnderTest();} 最佳答案 正如在其他回复中所说,JUnit

java - 如何使用 JUnit、EasyMock 或 PowerMock 模拟静态最终变量

我想模拟一个静态最终变量以及使用JUnit、EasyMock或PowerMock模拟一个i18n类。我该怎么做? 最佳答案 有没有像mocking这样的变量?我会称之为重新分配。我认为EasyMock或PowerMock不会为您提供重新分配staticfinal字段的简单方法(这听起来像是一个奇怪的用例)。如果你想这样做,你的设计可能有问题:如果你知道一个变量可能有另一个值,即使是为了测试目的,也要避免使用staticfinal(或更常见的全局常量)。无论如何,您可以使用反射来实现(来自:Usingreflectiontochang

java - 使用 junit @Rule、expectCause() 和 hamcrest 匹配器

我有一个测试:@RulepublicExpectedExceptionthrown=ExpectedException.none();...@TestpublicvoidtestMethod(){finalStringerror="errormessage";ThrowableexpectedCause=newIllegalStateException(error);thrown.expectCause(org.hamcrest.Matchers.equalTo(expectedCause));someServiceThatTrowsException.foo();}当通过mvn测试方

java - !!!预计 JUnit 版本 3.8 或更高版本

这个问题在这里已经有了答案:IntelliJIDEAwithJunit4.7"!!!JUnitversion3.8orlaterexpected:"(26个回答)关闭5年前。我的AndroidStudio项目有一个依赖于android框架的app模块,我创建了一个名为domain的新模块,它只包含纯java类和一些测试类。在这个模块的build.gradle文件中,我添加了junit和mockito库用于测试目的如下:applyplugin:'java'sourceCompatibility=1.7targetCompatibility=1.7dependencies{testComp

java - 使用 JUnit 4 注释测试多个异常

是否可以在单个JUnit单元测试中测试多个异常?我知道一个可以使用的异常(exception),例如@Test(expected=IllegalStateException.class)现在,如果我想测试另一个异常(比如NullPointerException),可以在同一个注解中完成,还是在不同的注解中完成,还是我需要完全编写另一个单元测试? 最佳答案 你真的希望测试做一件事,并为此进行测试。如果您不确定要抛出哪个异常,那听起来对我来说不是一个好的测试。例如(伪代码)try{badOperation();///lookslikew

java - 在eclipse中找不到作为junit测试运行

我像这样在Eclipse中创建了一个测试类@RunWith(SpringJUnit4ClassRunner.class)@ContextConfiguration(locations={"classpath:applicationContext.xml"})@TransactionConfiguration@TransactionalpublicclassTeamTestextendsAbstractTransactionalJUnit4SpringContextTests{@TestpublicvoidtestCreate(){assert(true);}}但是,当我右键单击该文件时

Java,Junit - 捕获标准输入/输出以用于单元测试

这个问题在这里已经有了答案:JUnittestforSystem.out.println()(14个回答)关闭8年前。我正在使用JUnit编写集成测试来自动化基于控制台的应用程序的测试。该应用程序是家庭作业,但这部分不是家庭作业。我想自动化这些测试以提高效率——我不想返回并重新测试应用程序中已经测试过的部分。(使用单元测试的标准原因)无论如何,我无法弄清楚或找到有关捕获输出的文章,以便我可以对其进行assertEquals也不提供自动输入。我不在乎输出/输入是否进入控制台/输出Pane。我只需要执行测试并验证输出是给定输入的预期结果。任何人都有文章或代码来帮助解决这个问题。

java - 将消息记录到 JUnit 控制台

有时在我编写单元测试时,在JUnit控制台(我使用的是IntelliJ,但我认为Eclipse非常相似)中记录日志消息并在我运行测试时查看它们很有用。问题是System.out.println不起作用。有人对如何将日志消息打印到JUnit控制台有任何提示吗? 最佳答案 您应该选择左侧树中的测试以在右侧的控制台中查看其输出: 关于java-将消息记录到JUnit控制台,我们在StackOverflow上找到一个类似的问题: https://stackoverfl

java - 在 @After 方法中检测 Junit 测试的失败或错误

JUnit中是否有办法在@After注释的方法中检测测试用例中是否存在测试失败或错误?一个丑陋的解决方案是这样的:booleanwithoutFailure=false;@Testvoidtest(){...asserts...withoutFailure=true;}@AfterpublicvoidtearDown(){if(!withoutFailuere){this.dontReuseTestenvironmentForNextTest();}}这很难看,因为需要注意测试代码中的“基础设施”(没有失败标志)。希望有什么东西可以在@After方法中获取测试状态!?