草庐IT

java - 通过junit测试main方法

这个问题在这里已经有了答案:UsingJUnittotestamainmethodthatrequiressimulationofkeyboardinputwithaninputstream?(2个回答)JUnittestforSystem.out.println()(14个回答)关闭6年前。我写了一个类,它接受来自控制台的输入和主方法中的参数。main方法为不同的控制台输入调用不同的方法,并为不同的参数调用不同的函数。所以我想通过模仿文件中的这些输入来用Junit测试这个主要方法。我该怎么做?junit中是否有专门的规定来测试类的main方法? 最佳答案

java - JUNIT : run setup only once for a large number of test classes

我有一个类,我用它作为单元测试的基础。在这个类中,我为我的测试初始化​​整个环境,设置数据库映射,在多个表中输入许多数据库记录,等等。该类有一个带有@BeforeClass注释的方法来进行初始化。接下来,我使用具有@Test方法的特定类扩展该类。我的问题是,由于所有这些测试类的前级完全相同,我如何确保它们对所有测试只运行一次。一个简单的解决方案是我可以将所有测试放在一个类中。但是,测试的数量很大,而且它们是根据功能头进行分类的。因此它们位于不同的类中。但是,由于它们需要完全相同的设置,因此它们继承了@BeforeClass。因此,每个测试类至少完成一次整个设置,总共花费的时间比我希望的

java - junit assertEquals 忽略大小写

我刚从c#->java迁移。我需要使用junit编写一些测试。在我的测试中,我需要比较两个字符串以查看它们是否匹配。所以我们也有Assert.assertEquals,但这是区分大小写的。我怎样才能使它不区分大小写?我需要的是:"blabla".equals("BlabLA")返回真。所以在C#中,我们曾经有:publicstaticvoidAreEqual(stringexpected,stringactual,boolignoreCase,stringmessage)我正在快速浏览Junit文档,但我似乎找不到这样的东西。 最佳答案

java - mockito test 在作为 junit test 运行时没有给出这样的方法错误,但是当在运行配置中手动添加 jar 时,它运行良好

我一直面临一个特殊的问题。基本上,当我正常运行Mockito/PowerMockito测试时,即“作为Junit测试运行”时,它会给我以下错误:java.lang.NoSuchMethodError:org.mockito.mock.MockCreationSettings.isUsingConstructor()Zatorg.mockito.internal.creation.instance.InstantiatorProvider.getInstantiator(InstantiatorProvider.java:10)atorg.powermock.api.mockito.in

java - Junit 在我的测试用例中断言 OR 条件

在我的测试用例中,我得到一个整数值:intval=getXXX();然后,我想检查val是等于3还是等于5,这两种情况都可以。所以,我做到了:assertTrue(val==3||val==5);我运行测试,日志显示val为5,但我上面的断言代码失败并出现AssertionFailedError。看来我不能以这种方式使用assertTrue(...),那么,如何检查OR条件为真? 最佳答案 您可以使用Hamcrestmatchers在此处获得更清晰的错误消息:inti=2;assertThat(i,Matchers.either(M

java - 我可以让 JUnit 更详细吗?

我想让它在断言语句成功时大喊大叫,或者至少让它显示遇到的成功断言语句的数量。我正在使用JUnit4。有什么建议吗? 最佳答案 如果您想查看每个成功断言的一些输出,另一种不需要外部依赖项或源代码的简单方法是定义您自己的Assert类,它将所有方法委托(delegate)给标准JUnitAssert类,以及日志记录成功的断言(失败的断言将由JUnit类照常报告)。然后,您从“org.junit.Assert”=>“com.myco.test.Assert”对您的测试类运行全局搜索和替换,这应该会修复所有常规和静态导入语句。然后,您还可以

java - JUnit4 使用测试套件运行特定包中的所有测试

这在JUnit4中可行吗?在JUnit3中,我会执行以下操作:publicclassMyTestSuite{publicstaticTestsuite()throwsException{doBeforeActions();try{TestSuitetestSuite=newTestSuite();for(Classclazz:getAllClassesInPackage("com.mypackage")){testSuite.addTestSuite(clazz);}returntestSuite;}finally{doAfterActions}}...}

java - 如果没有至少一个 TestEngine,则无法创建 Launcher;考虑在 Junit 5 的类路径中添加一个引擎实现 JAR

当我尝试在junit5中运行测试用例时,我得到了以下执行:Failedtoexecutegoalorg.apache.maven.plugins:maven-surefire-plugin:2.19:test(default-test)onprojectCRUD-App:Executiondefault-testofgoalorg.apache.maven.plugins:maven-surefire-plugin:2.19:testfailed:Therewasanerrorintheforkedprocessorg.junit.platform.commons.util.Preco

java - 使用 VisualVM 在 Eclipse Indigo 中分析 JUnit

如何配置JUnit测试,优先使用Eclipse集成支持?我正在尝试使用VisualVM来完成,但显然无法完成。我使用的是Windows7x64、EclipseIndigo、jdk1.6、jre-j9和JUnit3(我可以使用v.4) 最佳答案 您可以使用JVisualVM(%JAVA_HOME%/bin/jvisualvm.exe),但要与JUnit一起使用,您需要稍微更改运行配置。运行一次JUnit测试,以创建运行配置编辑运行配置(运行->运行配置...)在Test选项卡中选中“调试时保持JUnit在测试后运行”复选框重新运行测试

java - JUnit中是否有任何条件注释来标记要跳过的几个测试用例?

据我所知,要跳过一个测试用例,最简单的做法是删除@Test注释,但是要在大量测试用例上执行此操作很麻烦。我想知道JUnit中是否有任何注释可以有条件地关闭一些测试用例。 最佳答案 很难知道您正在寻找的是否是@Ignore注释,或者您是否真的想有条件地关闭某些JUnit测试。使用Assume有条件地关闭测试用例。您可以阅读releasenotes中的假设。对于junit4.5堆栈溢出还有一个相当不错的线程:ConditionallyignoringtestsinJUnit4 关于java-