草庐IT

java - 将 JUnit 类别与 Maven Failsafe 插件一起使用

我正在使用JUnit类别将集成测试与单元测试分开。Surefire插件配置有效——它跳过了用我的标记接口(interface)IntegrationTest注释的测试。但是,Failsafe插件不会选择集成测试。我什至尝试指定junit47提供程序,但在集成测试阶段运行零测试。这是pom.xml片段:org.apache.maven.pluginsmaven-failsafe-plugin2.12integration-testcom.mycompany.test.IntegrationTestcom.mycompany.test.UnitTestorg.apache.maven.su

java - Mockito:多次调用同一个方法

我正在用Mockito模拟一个对象,这个对象上的同一个方法被多次调用,我想每次都返回相同的值。这是我的:LogEntryentry=null;//thisisafield//Thismethodiscalledonceonly.when(mockLogger.createNewLogEntry()).thenAnswer(newAnswer(){@OverridepublicLogEntryanswer(InvocationOnMockinvocationOnMock)throwsThrowable{entry=newLogEntry();returnentry;}});//Thism

java - 如何使用线程执行单元测试?

这个问题在这里已经有了答案:HowshouldIunittestmultithreadedcode?(29个答案)关闭5年前。执行摘要:当线程中出现断言错误时,单元测试不会终止。这是有道理的,因为不应允许一个线程使另一个线程崩溃。问题是我如何1)当第一个辅助线程崩溃时使整个测试失败或2)循环并确定每个线程全部完成后的状态(请参见下面的代码)。执行后者的一种方法是让每个线程都有一个状态变量,例如“boolean[]statuses”,并且“statuses[i]==false”意味着线程失败(这可以扩展以捕获更多信息)。然而,这不是我想要的:我希望它在抛出断言错误时像任何其他单元测试一样

java - 如果没有第二个参数转换,assertEquals 将无法工作

伙计们,为什么我在这个JUnit测试中收到“方法assertEquals(String,Object,Object)对于类型DictionaryTest不明确”的错误?@TestpublicvoidtestEditCard(){Integera=10;Integerb=12;Integerc=2;assertEquals("test",a-b,c);}添加转换assertEquals("test",(Integer)(a-b),c);解决了这个问题。 最佳答案 由于自动装箱和拆箱的奇迹:assertEquals("test",/*t

java - 如何使用带有类的构造函数模拟对象?

这是测试:importstaticjunit.framework.Assert.assertTrue;importstaticorg.powermock.api.mockito.PowerMockito.mock;importstaticorg.powermock.api.mockito.PowerMockito.whenNew;importorg.junit.Test;importorg.junit.runner.RunWith;importorg.powermock.core.classloader.annotations.PrepareForTest;importorg.powe

java - 如何使用 Java 启动和停止 Tomcat 容器?

我有一个Maven项目,它启动一个tomcat容器用于预集成测试(jUnit测试)。我的大部分测试都需要重新启动被测Web应用程序。所以我想在执行每个jUnit测试之前重新启动Tomcat容器。至于现在我使用cargo-maven2-plugin来配置tomcat容器。那么,是否可以通过java语句启动和停止容器呢? 最佳答案 So,isitpossibletostartandstopthecontainerwithajavastatement?您的用例看起来非常奇怪(必须在测试之间重新启动容器)但我们不讨论这个。要回答你的问题,是

java - assertEqual NullPointerException 的 JUnit 测试

我不确定为什么测试用例没有输出true。这两种情况都应该给出一个NullPointerException。我试过这样做(不完全相同,但它给出了true的输出):StringnullStr=null;//@TestpublicintNullOutput1(){nullStr.indexOf(3);return0;}//@Test(expected=NullPointerException.class)publicintNullOutput2(){nullStr.indexOf(2);return0;}@Test(expected=NullPointerException.class)pu

java - assertEquals(Double, Double) 和 assertEquals(double, double, delta) 之间的 Junit 区别

我有一个junit测试断言两个Double对象,具有以下内容:Assert.assertEquals(Doubleexpected,Doubleresult);这很好,然后我决定将其更改为使用原始double而不是它被弃用,除非您还提供delta。所以我想知道在这个assertEquals中使用Double对象或原始类型有什么区别?为什么使用没有增量的对象可以,但是不推荐使用没有增量的基元?Java是否在后台执行某些已考虑默认增量值的操作?谢谢。 最佳答案 没有assertmethodinJUnit带签名assertEquals(D

java - 无法通过测试用例从 src/main/resources 访问文件

我在src/main/resources中有一个file.dat。当我尝试测试通过jar文件加载此文件的类时,测试失败,因为它无法在路径中找到该文件(I/O异常)。我通过测试得到的路径是:/home/usr/workspace/project/target/test-classes/file.dat但是target/test-classes中不存在这个文件,你知道吗? 最佳答案 来自src/main/resources的文件在主程序运行期间将在类路径上可用,而来自src/main/resources和的文件src/test/reso

java - JerseyTest 和 JUnit 抛出 NullPointerException

我在jersey测试框架方面遇到了一些问题。如果我使用@Before和@After注释,则目标方法将抛出NullPointerException。我以为JerseyTest与JUnit一起工作?我的问题在哪里?Jersey:2.12JUnit:4.11失败的代码:publicclassMyResourceTestextendsJerseyTest{@BeforepublicvoidsetUp(){}@AfterpublicvoidtearDown(){}@OverrideprotectedApplicationconfigure(){returnnewResourceConfig(My