草庐IT

hamcrest-junit

全部标签

java - JUnit - 指定测试对其他测试的依赖(不跳过任何一个)?

我们的工具包有超过15000个JUnit测试,并且如果其他一些测试失败,许多测试都会失败。例如,如果方法X.foo()使用来自Y.bar()的功能并且YTest.testBar()失败,那么XTest.testFoo()也会失败。显然,XTest.testFoo()也可能因为X.foo()特有的问题而失败。虽然这很好,我仍然希望两个测试都运行,但如果可以使用指向YTest.testBar()的XTest.testFoo()来注释测试依赖关系,那就太好了。这样一来,我们可以立即看到X.foo()使用的哪些功能也失败了,哪些没有。在JUnit或其他地方有这样的注解吗?比如:publicXT

java - 如何从我的 Java 应用程序内部运行 JUnit 测试?

是否可以从我的Java应用程序中运行JUnit测试?是否有我可以使用的测试框架(例如JUnit.jar?),还是我必须自己查找测试文件、调用方法并跟踪异常?我问的原因是我的应用程序需要大量工作才能启动(大量依赖项和配置等),并且使用外部测试工具(如JUnitAnt任务)需要大量工作准备工作。更容易启动应用程序,然后在应用程序内部运行我的测试。是否有一个简单的测试框架可以从Java应用程序内部运行测试并输出结果,还是我被迫编写自己的框架?如何从我的Java应用程序中运行JUnit测试? 最佳答案 是的,你可以。我做了几次在生产系统中运

java - 无法使用 PowerMockRunner 运行 JUnit 测试

我有一个基于Gradle的Java项目,现在我想使用PowerMock模拟私有(private)方法。问题是我无法使用PowerMockRunner,因为当我添加@RunWith(org.powermock.modules.junit4.PowerMockRunner.class)注释时总是出现以下异常。错误:org.powermock.reflect.exceptions.FieldNotFoundException:Field'fTestClass'wasnotfoundinclassorg.junit.internal.runners.MethodValidator.atorg.

java - Eclipse junit 测试在同一个项目中

这是一个相对开放的问题。如果我在Eclipse的项目中构建了一个应用程序,然后我想测试这个项目,我应该在同一个项目中创建JUnit代码还是创建一个单独的项目。比如……ShopSystem可能是我的主要项目的名称-我应该创建一个名为ShopSystemTest的项目吗?一般来说-测试代码应该存储在离项目主文件夹“多远”的地方?如果我将测试代码存储在主项目中,然后将主项目导出为可运行的jar,它将带走测试代码,这并不理想......建议? 最佳答案 虽然没有唯一正确的方法,但通常的方法是将单元测试保留在同一个项目中。您可以创建第二个源文

java - 如何确定代码是否在 JUnit 测试中运行?

在我的代码中,只有在JUnit测试中运行时,我才需要进行某些修复。如何确定代码是否在JUnit测试中运行?有类似JUnit.isRunning()==true的东西吗? 最佳答案 如果您想以编程方式决定运行哪个“配置文件”,这可能是个好主意。考虑使用SpringProfiles进行配置。在集成测试中,您可能希望针对不同的数据库进行测试。这是经过测试的有效代码publicstaticbooleanisJUnitTest(){for(StackTraceElementelement:Thread.currentThread().getS

java - JUnit 测试抛出异常的错误形式?

我对JUnit还是很陌生,我真的不知道异常和异常处理的最佳实践是什么。例如,假设我正在为IPAddress类编写测试。它有一个构造函数IPAddress(Stringaddr),如果addr为null,它将抛出InvalidIPAddressException。据我通过谷歌搜索得知,null参数的测试将如下所示。@TestpublicvoidtestNullParameter(){try{IPAddressaddr=newIPAddress(null);assertTrue(addr.getOctets()==null);}catch(InvalidIPAddressException

java - JUnit 理论和参数化测试之间的区别

理论测试和参数化测试有什么区别?我对创建测试类时的实现差异不感兴趣,只是当您选择一个而不是另一个时。 最佳答案 据我了解:通过参数化测试,您可以为测试用例提供一系列静态输入。理论相似但概念不同。他们背后的想法是创建测试假设而不是静态值的测试用例。因此,如果我提供的测试数据根据某些假设是正确的,则结果断言始终是确定性的。这背后的驱动思想之一是您将能够提供无限数量的测试数据,并且您的测试用例仍然是正确的;此外,您通常需要在测试输入数据中测试各种可能性,例如负数。如果您静态测试,即提供一些负数,则不能保证您的组件将针对所有负数工作,即使很

java - JUnit 消息是否应该说明成功或失败的条件?

我可以通过以下两种方式之一来编写断言消息。说明成功:assertEquals("objectsshouldbeidentical",expected,actual);或者陈述被破坏的情况:assertEquals("objectsaren'tidentical",expected,actual);在JUnit中是否有专门的标准?如果不是,双方的论据是什么?附:我在网络上看到过没有解释地展示这两种方法的文章,所以只说“搜索Google”不是答案![更新]每个人都对我使用了assertEquals这一事实感到困惑,因此该消息可能毫无用处。当然,这只是因为我想简单地说明这个问题。所以想象一下

java - 异常Junit 4.10后的Mockito验证

我正在测试一个带有预期异常的方法。我还需要验证在抛出异常后(在模拟对象上)调用了一些清理代码,但看起来验证被忽略了。这是代码。我正在使用JunitExpectedExceptionRule来验证预期的异常。@RulepublicExpectedExceptionexpectedEx=ExpectedException.none();@TestpublicvoidtestExpectedException(){MockedObjectmockObj=mock(MockedObj.class);MySubjectsubject=newMySubject(mockedObj);expecte

java - 如何在没有 Maven 的情况下同时运行 Eclipse Java 项目的所有 JUnit 测试?

我在Eclipse中有一个小型Java项目。我对项目中的每个类都有一个JUnit测试类。我使用的是JUnit4,这不是一个maven项目。有没有一种简单的方法来告诉Eclipse一次运行所有测试类中的所有测试? 最佳答案 右键单击源文件夹,然后RunAs...>JUnitTest。 关于java-如何在没有Maven的情况下同时运行EclipseJava项目的所有JUnit测试?,我们在StackOverflow上找到一个类似的问题: https://stac