草庐IT

java - 嵌套类中的 junit5 MethodSource

我正在使用junit5,我想在嵌套类中创建参数化测试。例如:classCardTest{@NestedclassCost{Streamcards(){returnStream.of(Arguments.of(Card.common(0,Color.RED),0),/**OtherData**/Arguments.of(Card.choseColor(),50));}@MethodSource("cards")@ParameterizedTestvoidcardCost(Cardcard,intcost){assertThat(card.cost()).isEqualTo(cost);}

java - 如何为 JUnit 测试用例运行启用全局超时?

这question建议使用timeout@Test注释的参数让JUnit在该超时期限后强制停止测试。但到目前为止,我们有大约5000个单元测试,我们希望制定一项政策,要求开发人员绝不发布需要超过10秒才能完成的测试。该政策可能会说“瞄准任何测试在30秒后停止。(这些数字只是示例,我们的想法是为大多数用例定义一些“足够好”的东西,但这也确保事情不会“永远”运行)现在我想知道是否有一种方法可以在不进入每个测试用例并添加该注释参数的情况下启用这种行为。现有question也无济于事:我正在寻找一个更改来启用此功能,而不是每个测试类一个更改解决方案。一个中央全局交换机。不是每个文件或方法一个。

java - JUnit 扩展基类并在该类中运行测试

我正在使用JUnit3,并且经常遇到这样的情况:我必须测试对象是否已正确创建。我的想法是编写一个如下所示的类MyTestBase,然后针对特定情况的单元测试对其进行扩展。但是在我给出的示例中,MyTests不会运行MyTestBase中的测试。publicclassMyTestBaseextendsTestCase{protectedStringfoo;publicvoidtestFooNotNull(){assertNotNull(foo);}publicvoidtestFooValue(){assertEquals("bar",foo);}}publicclassMyTestsex

java - 学习 JUnit 和正确软件工程的示例项目

关闭。这个问题不符合StackOverflowguidelines.它目前不接受答案。我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以便用事实和引用来回答。关闭5年前。Improvethisquestion我很难在测试和代码之间建立联系。我可以在这里问很多关于目录结构和测试类命名以及JUnit3与4等问题,但我宁愿找到一个正确执行它的示例项目并通过阅读它来学习。我想要一些不太复杂的东西,这样我就可以很容易地理解它,而JUnit4是最好的(没有理由坚持使用3,因为我刚开始,对吧?)。我在Windows7上,我使用Eclipse,我计划/希望学习和使用Hudson。我喜欢A

java - 删除冗余的 JUnit 测试套件测试

在我们的JUnit测试套件中,我发现了一些没有提高覆盖率的测试,因此应该将其删除(它们需要时间,但并没有真正为测试套件增加值(value))。我想知道有哪些工具可以为我发现冗余测试? 最佳答案 我认为这是对代码覆盖率指标的滥用。仅仅因为一个测试不会增加指标,它不一定是多余的——它可以测试一个特定的执行路径,该路径由LOC组成,这些LOC被其他几个测试一起覆盖,但代表了其他测试都没有覆盖的行为。请记住:代码行为受状态的影响很大,但据我所知,没有任何测试覆盖率工具可以衡量状态空间的覆盖率。除非你的测试套件的运行时间是一个严重的问题,否则

java - 单元测试、静态和工厂

我正在用Java实现一个模型,它需要迭代一个集合并经历多个识别阶段,它涉及for循环、while循环等。这是我想在细粒度级别测试的东西这样我就有信心它已得到正确实现。我将它作为开始单元测试的机会,因为我认为这对我的代码有益。从那以后,我一直在阅读大量书籍,以跟上JUnit和单元测试的速度。基本上我的问题归结为我收到的两条相互矛盾的建议:1)静电是邪恶的。请勿触摸静电。也不要测试privates,你可能想要一个类。2)使用工厂进行创建以允许使用参数进行依赖注入(inject)——可能允许使用模拟和stub进行隔离。在我的示例中,我希望按照以下方式执行操作:doubleheight=223

java - 让 DbUnit 与 Hibernate 事务一起工作

我在尝试将Hibernate事务中所做的更改推送到数据库以使DbUnit在我的测试用例中正常工作时遇到问题。似乎DbUnit没有看到Hibernate所做的更改,因为它们尚未在事务结束时提交......而且我不确定如何重组我的测试用例以使其正常工作。这是我过度简化的测试用例来证明我的问题:-@RunWith(SpringJUnit4ClassRunner.class)@ContextConfiguration(locations={"classpath:applicationContext-test.xml"})@TransactionConfiguration(transaction

java - 如何使用 JMockit 模拟 Spring 注入(inject)类

我的代码:classAextendsX{@AutowiredBb;@Overridemethod(){//dosomethingb.callMethodInB;//dosomething}}classBextendsX{@AutowiredCc;@Overridemethod(){//dosomethingc.callMethodInC;//dosomething}}我需要在A中测试method()。那么如何模拟B。我正在使用Junit4和Jmockit。 最佳答案 尝试这样的事情:importorg.junit.*;importm

c# - 像java一样的Visual Studio参数化单元测试

在Java测试环境中,我可以使用如下代码中的参数化单元测试:@RunWith(value=Parameterized.class)publicclassJunitTest6{privateintnumber;publicJunitTest6(intnumber){this.number=number;}@ParameterspublicstaticCollectiondata(){Object[][]data=newObject[][]{{1},{2},{3},{4}};returnArrays.asList(data);}@TestpublicvoidpushTest(){Syste

java - 使用 PowerMockito 模拟 getClass 方法

我想避免模拟某个类的getClass()方法,但似乎找不到任何解决方法。我正在尝试测试一个将对象类类型存储在HashMap中的类,以供稍后使用的特定方法。一个简短的例子是:publicclassClassToTest{/**Mapthatwillbepopulatedwithobjectsduringconstructor*/privateMap,Method>map=newHashMap,Method>();ClassToTest(){/*LoopthroughmethodsinClassToTestandiftheyreturnabooleanandtakeinanInterfac