我有一个TestClass
,有两个Testfoo()
和bar()
,foo
使用原始beanserviceObject
,而bar
使用mockedBean:所以总是有一个测试失败。有没有办法只模拟我的bean为bar()
@RunWith(SpringRunner.class)
@SpringBootTest
pubic class TestClass{
@MockBean
private ServiceObject serviceObject;
@Test
public void foo(){
//do smt test with non mocked bean serviceObject
}
@Test
public void bar(){
//do smt with mockedBean
}
}
只需使用您需要在任何给定测试中使用的对象。以下是一些示例代码:
@RunWith(SpringRunner.class)
@SpringBootTest
pubic class TestClass{
@MockBean
private ServiceObject mockServiceObject;
@Test
public void foo(){
ServiceObject blam = new ServiceObject();
// Use blam in this test
//do smt test with non mocked bean serviceObject
}
@Test
public void bar(){
//do smt with mockedBean
// use mockServiceObjec in this test
}
}
我会把测试分成两个不同的类,因为它们显然测试的是完全不同的东西。
一个(foo()
)可能测试ServiceBean
实现的行为,另一个(bar()
)测试使用ServiceBean
实例的东西。
我假设您可以在类范围内创建一个Instance,并在方法范围内模拟它。
我已经为静态方法编写了一些单元测试。静态方法只接受一个参数。参数的类型是final类。在代码方面: 因此,对于类,我创建了一个测试类,其中我为这个方法编写了测试,。单元测试框架是TestNG,使用的模拟库是。因此,典型测试具有以下结构: 有什么问题? 尽管测试在IntelliJ内部成功地在本地运行,但在Jenkins上失败(当我在远程分支中推送代码时,会触发构建,并在最后运行单元测试)。错误消息如
问题内容: 我正在为具有两个方法methodA,methodB的类编写JUnit测试用例。我想在测试用例中模拟对methodA的methodB调用,我正在对正在测试的类使用间谍,但仍然执行methodB。 这是课程 这是测试课 尽管我已对其进行了模拟,但方法B仍会得到调用。请向我建议一个使用正确方法模拟同一类methodA的methodB调用的解决方案。 问题答案: 我昨天碰到这个,因为间谍最好做
问题内容: 我正在尝试在Mock上使用Mockito来执行此操作: 当使用parameter1 调用Mock.someMethod(..)->返回result1 当使用parameter2调用Mock.someMethod(..)时-> return result2 当Mock.someMethod (..)用参数3调用->返回result3 但是Mockito正确地对第一个进行了存根,但是在第二
问题内容: 我有一个名为Java的Java类,我想用JUnit进行测试。我要测试的公共方法调用同一类中的私有方法,以确定要遵循的条件路径。我的目标是为中的不同路径编写JUnit测试。另外,调用服务,因此我不希望在运行JUnit测试时实际执行该服务。 模拟和控制其返回值以便我可以测试“ methodA”的不同路径的最佳方法是什么? 我更喜欢在编写模拟时使用JMockit,因此我对适用于JMockit
我有一个在 ABC 中自动连线的 XYZ 类,在类 MyClass 中我有一个方法名称 doSomething() 在该方法中我做 ABC abc = 新的 ABC();然后我调用 abc.someMethod(); 请参见下面的代码示例: ABC类 类MyCLass 需要单元测试doSomething(),但我NPE在ABC中XYZ为空。在这种情况下,我怎么能模仿@Autowire。
我对JUnit测试和Mockito框架非常陌生,我有一个用例,我想测试一个方法,该方法在内部调用我需要测试的同一类的重载方法。我已经为第一个方法编写了单元测试,希望跳过内部的第二个方法调用。下面是代码片段。 需要测试的类- 测试班-