草庐IT

unit-testing

全部标签

java - getters和setters的junit测试方法

我的项目中有很多javabean。我需要为他们生成一个JUnit测试类。使用Eclipse3.2和junit4.4生成的测试方法如下所示:publicvoidtestGetName(){//fail("Notyetimplemented");}@TestpublicvoidtestSetName(){//fail("Notyetimplemented");}@TestpublicvoidtestGetEmployeeid(){//fail("Notyetimplemented");}@TestpublicvoidtestSetEmployeeid(){//fail("Notyetimp

java - 覆盖 Guice 中的绑定(bind)

我刚开始玩Guice,我能想到的一个用例是在测试中我只想覆盖单个绑定(bind)。我想我想使用其余的生产级别绑定(bind)来确保一切设置正确并避免重复。想象一下我有以下模块publicclassProductionModuleimplementsModule{publicvoidconfigure(Binderbinder){binder.bind(InterfaceA.class).to(ConcreteA.class);binder.bind(InterfaceB.class).to(ConcreteB.class);binder.bind(InterfaceC.class).t

java - 如何让 Jersey Test/Client 不填写默认的 Accept header ?

我正在尝试以特定方式处理没有Acceptheader的请求,但无论我做什么,Jersey似乎都一心想填写一个,所以它看起来总是请求有一个Acceptheader,即使它没有。importorg.glassfish.jersey.server.ResourceConfig;importorg.glassfish.jersey.test.JerseyTest;importorg.junit.Test;importjavax.ws.rs.GET;importjavax.ws.rs.Path;importjavax.ws.rs.core.Application;importjavax.ws.r

java - 如何让 Eclipse 2018.09 默认使用 JUnit 4 测试运行器?

我刚刚升级到Eclipse2018.09(该问题也发生在EclipsePhoton上),但它不能很好地与使用JUnit4的项目一起使用。新版本似乎使用JUnit运行所有测试5runner默认情况下,它失败并出现以下错误,因为我在项目的类路径上只有JUnit4,而不是JUnit5:java.lang.NoClassDefFoundError:org/junit/platform/engine/EngineExecutionListeneratorg.junit.platform.launcher.core.LauncherFactory.create(LauncherFactory.ja

java - 单元测试 - 实现 equals 只是为了方便测试

以下是我对单元测试的要求:我想对我的生产类进行单元测试我想将测试代码和生产代码分开,这样我就可以只发布生产代码这似乎是合理的要求。但是,当我需要在对象上使用诸如assertEquals之类的方法时,问题总是会出现,因为这些方法需要覆盖equals方法。equals方法必须在生产类中实现,但实际上仅用于测试。如果良好的编码实践规定如果equals被覆盖,那么hashCode是否也应该被实现,导致更多未使用的生产代码使生产类变得困惑。这是一个带有User模型的简单示例(IntelliJ自动实现的equals和hashCode)publicclassUser{publiclongid;pub

java - 我是否发现了 java.util.Calendar 错误?

我有以下测试:importstaticorg.junit.Assert.assertEquals;importjava.text.SimpleDateFormat;importjava.util.Calendar;importjava.util.TimeZone;importorg.junit.Test;publicclassCalendarBug{privatestaticfinalTimeZoneUTC_ZONE=TimeZone.getTimeZone("UTC");//+0hoursprivatestaticfinalTimeZoneIST_ZONE=TimeZone.getT

java - 合并来自多个 Jenkins 作业的测试覆盖率和测试结果

背景:我们有一个用Java编写的相当大的RESTAPI,我们正在结合单元测试和功能测试对其进行测试。测试它时需要进行许多变体,特别是在功能级别。虽然单元测试位于树中,但功能测试位于单独的代码存储库中。我们目前使用Jacoco进行测试覆盖,使用TestNG运行我们的单元测试,但我相信我的问题的答案应该适用于其他工具组合。我们在Jenkins中有几个不同的工作,这些工作是由checkin主要项目触发的。其中包括运行Coverity等工具的作业以及几个不同的功能测试作业。这些作业由初始提交触发,在所有下游作业成功完成之前,初始提交不被视为“绿色”。问题:我们如何获取覆盖率报告(如Jacoco

java - Controller 的 Spring Boot 测试 @WebMvcTest 似乎在上下文中加载其他 Controller

这是我的SpringController测试用例@RunWith(SpringRunner.class)@WebMvcTest(value=MyController.class)publicclassMyControllerTest{@MockBeanprivateMyServicemyService;}所以这是专门针对MyController中方法的单元测试。但是当我运行测试时,Spring似乎开始实例化OtherController及其所有依赖项。我已经尝试将上面的内容更新为@RunWith(SpringRunner.class)@WebMvcTest(value=MyContro

java - 测试在 Java 中实现接口(interface)的所有类

是否有任何东西(特别是针对Java)可以让您自动测试接口(interface)的行为?例如,假设我有一堆针对Comparable接口(interface)的测试,它们应该适用于任何实现Comparable的东西。我想要的是能够在我的任何实现Comparable的类的测试装置中自动包含“ComparableTests”。如果这适用于通用接口(interface),则加分。我知道.NET框架mbUnit有类似的东西,当你使用像TestNG的生成器函数这样的东西时,你可以为Comparable设置一个测试夹具,并让生成器为你的每个实现Comparable的类创建一个实例。但我宁愿它是自动的,

java - 单元测试嵌套子流(子流的子流)

我正在尝试为一个流编写单元测试,该流具有子流,而子流本身又具有另一个子流。我注册第一个流程使用FlowDefinitionResourcegetResource(FlowDefinitionResourceFactoryresourceFactory)。然后我在测试执行期间在FlowDefinitionRegistry中注册子流定义,然后再转换到它们。过渡到“第一级”子流程没问题。转换到当前子流的子流的结果-NoSuchFlowDefinitionException。问题是子流定义似乎都附加到测试的主要流,并且在另一个子流中找不到子流。有什么方法可以将子流定义附加到测试中的另一个子流,