草庐IT

Junit-Tests

全部标签

java - 在不修改测试类的情况下排除单个 JUnit 测试方法?

我目前正在对我的代码重新使用另一个项目的JUnit4测试。作为我的自动化Ant构建的一部分,我直接从其他项目的存储库中获取它们。这很棒,因为它确保我的代码在最新版本的测试中保持绿色。但是,有一部分测试我从未期望通过我的代码。但是,如果我开始向这些测试添加@Ignore注释,我将不得不维护我自己的测试实现的单独副本,我真的不想这样做。有没有办法在不修改测试源的情况下排除个别测试?以下是我到目前为止所看到的内容:据我所知,AntJUnit任务只允许您排除整个测试类,而不是单个测试方法-所以这对我没有好处,我需要方法粒度。我考虑过组合一个TestSuite,它使用反射来动态查找和添加所有原始

java - 无法使用 Eclipse 运行 jUnit

我使用新的Eclipse。使用jUnit创建演示测试(我在Eclipse中添加了默认的jUnit库)。然后我写这段代码:importjunit.framework.*;importorg.junit.Test;publicclassSimpleTestextendsTestCase{publicSimpleTest(Stringname){super(name);}publicfinalvoidmain(Stringmethod){}@TestpublicfinalvoidtestSimpleTest(){intanswer=2;assertEquals((1+1),answer);}

java - jUnit 测试两个 boolean 数组

我刚刚注意到jUnit4.8.1不支持测试两个boolean数组是否相等。还有很多其他的assertArrayEquals,但没有一个接受两个boolean数组。有没有正确的方法来做到这一点?我目前的想法是我必须遍历一个数组并使用类似的东西Assert.assertTrue(arrayOne[i]==arrayTwo[i]);有没有更简洁的方法来做到这一点? 最佳答案 您可以使用Arrays.equals()比较两个数组,然后断言它们是等价的。Assert.assertTrue(Arrays.equals(arrayOne,arra

java - 如何在 JUnit 中测试 void 方法

这个问题在这里已经有了答案:HowtotestvoidmethodwithJunittestingtools?(6个答案)关闭9年前。如何使用JUnit测试void方法。voidadd(inta,intb){intc=a+b;}如何在Java中使用Junit测试上述方法。

java - 使用 jUnit 和 Mockito 对外部 REST API 调用进行单元测试

我正在SpringBootJava应用程序中为服务类构建单元测试。服务类对返回JSON响应的RESTAPI服务进行外部调用。我正在使用Mockito模拟这个调用。我在模拟服务器响应中对JSON进行硬编码。在单元测试中使用硬编码JSON是一种不好的做法吗?如果JSON结构改变,那么测试应该失败是我的推理。是否有更好的最佳实践在哪里执行此操作?下面的示例片段:实际代码是有效的,为了简洁起见,我只是编辑了这个片段以表达想法,所以如果您发现任何错误,请发表评论:publicclassUserServiceTestextendsTestCase{privatestaticfinalStringM

java - JUnit 测试自定义异常

这个问题在这里已经有了答案:JunitTestCaseforexception[closed](1个回答)关闭7年前。我正在使用JUnit,不太确定如何测试自定义异常类。我创造了,publicclassCustomExceptionextendsException{//@parammessageistheexceptionmessagepublicCustomException(finalStringmessage){super(message);}//@parammessageistheexceptionmessage//@paramcauseisthecauseoftheorigi

java - Gradle 下的 JUnit 5 具有多个源集

我有一个项目要放在一起,我想使用JUnit5。我已经为单元测试做好了准备。但是我确实有多个测试源集-我还有一个用于验收测试。我正在努力弄清楚如何让JUnit5在一个任务中运行单元测试-在src/test中定义-在另一个任务中运行验收测试-在“acceptanceTest”源集中定义并位于“src/acceptance”中任务。我之前已经使用JUnit4和Cucumber进行了此操作,但JUnit5插件似乎不想这样工作。build.gradle:buildscript{ext{jackson_version="2.9.0.pr4"//IntelliJneedsM4junitJupiter

java - 如何在 junit 中使用未捕获的异常处理程序进行多线程测试?

我有以下代码,我希望它能成功运行直到完成,但代码在“fail("thisshouldnotbereached");”行失败。有人可以解释为什么不调用默认的未捕获异常处理程序吗:publicclassUncaughtExceptionTestextendsTestCaseimplementsUncaughtExceptionHandler{privatefinalListuncaughtExceptions=newCopyOnWriteArrayList();classUncaughtExceptionTestInnerClassimplementsRunnable{privatefin

java - SetUp,初始化Junit测试

我正在尝试测试以不同方式对字符串数组进行排序的3个类!我知道有一种方法可以初始化一个数组,然后在我的每个测试中使用它们。到目前为止,这是我的代码:publicclassSortingTest{publicinsertionSortis=newinsertionSort();publicbubbleSortbs=newbubbleSort();@TestpublicvoidtestBubbleSort(){String[]sortedArray={"Chesstitans","Ludo","Monkey","Palle"};bs.sort(sortedArray);assertArray

java - 如何使 log4j error() 调用在 jUnit 测试中抛出异常?

我有一个正在使用JUnit(Junit3和4风格的混合)测试的Java项目,其中被测试的类可能会记录log4j错误。如果记录了这样的错误,我想让单元测试失败。是否有一种通用的方法来配置log4j或单元测试基础结构,以在被测代码中对log4jerror()方法进行任何调用都会抛出运行时异常,从而导致测试失败?AOP可能是一种方式,但我也对其他可能性感兴趣。此处的目的是清除代码中错误使用log4jerror()的地方。也就是说,当错误被记录但没有发生异常或错误处理时,它要么不是真正的错误,要么是并且应该被引发。例如:publicclassMyTestextendsTestCase{publ