我目前正在研究Mockito框架,并且已经使用Mockito创建了一些测试用例。但后来我读到的不是调用模拟( SomeClass的
的.class)我可以使用@Mock
和@InjectMocks
-我需要做的唯一一件事情就是我的注释测试类@RunWith(MockitoJUnitRunner.class)
或使用MockitoAnnotations.initMocks(this);
的@Before
方法。
但这不起作用-似乎@Mock
不会起作用!这是我的2个代码修订-一个使用注释,另一个不使用注释。
我究竟做错了什么?
public class ReportServiceImplTestMockito {
private TaskService mockTaskService; // This is the Mock object
private ReportServiceImpl service;
@Before
public void init(){
service = new ReportServiceImpl();
mockTaskService = mock(TaskServiceImpl.class);
service.setTaskServiceImpl(mockTaskService);
}
/// ...
Some tests
}
正如我所说-这项工作很棒。但是以下内容不会:
@RunWith(MockitoJUnitRunner.class)
public class ReportServiceImplTestMockito {
@Mock
private TaskService mockTaskService;
@InjectMocks
private ReportServiceImpl service;
// Some tests
}
这是ReportServiceImpl
课程:
@Service
public class ReportServiceImpl implements ReportService {
@Autowired
private TaskService taskServiceImpl;
public ReportServiceImpl(){}
public ReportServiceImpl(TaskService taskService){
this.taskServiceImpl = taskService;
}
public void setTaskServiceImpl(TaskService taskServiceImpl) {
this.taskServiceImpl = taskServiceImpl;
}
}
我想念什么?
OK,我弄错了!!!我@InjectMocks
在init()方法中使用了但已初始化相同的变量…所以发生的是,mockito将模拟对象注入到我的变量中-
但是几秒钟后,我将其运行了-初始化了相同的变量!
我有这两种方法,在使用Mock实现测试时遇到了困难。我该如何参加考试? 我有麻烦得到Jboss目录而不必启动System.get属性(jboss.server.temp.dir);
测试代码: 错误信息 当我将@injectmocks更改为@mock时,第二个测试是可以的,但第一个测试是错误的。我需要添加到一个stubbing 我不知道怎么做, injectmocks是否必要?
我正在尝试对put请求进行测试,它给了我空指针错误,只是在这种类型的请求中,我不知道为什么请有人帮我,这是我的控制器: 对于测试方法:
我试图用Mockito mock对象替换对象。通常的方法是使用Springockito使用xml: 目前,我正在尝试使用Spring的JavaConfig来完成这项工作。突然之间,Java表达式比xml要详细得多: 我发现了一个名为Springockito annotations的库,它允许您执行以下操作: 显然,更漂亮:)唯一的问题是,这个上下文加载器不允许我对其他bean使用和JavaConf
问题内容: 我正在尝试使用python模拟模块的函数(返回一些外部内容)。 我在导入模块的模拟函数时遇到了一些麻烦。 例如,在我有 我想嘲笑,以便它返回其他内容。 我正在尝试: 如果在另一个模块中被调用,它实际上似乎永远不会返回模拟对象。我在使用方法方面缺少什么吗? 请注意,如果我调用以下内容,则一切正常: 但是,如果从另一个模块内部调用,它将调用原始函数而不是模拟版本: 内容 所以我想我的问题是
我读到过,当使用@Mock时,它应该与@RunBy(MockitoJUnitRunner.class)一起使用,而对于@MockBean,它与@Runwith(SpringRunner.class)一起使用。 然而,对于@Mock,我发现MockitoJunitRunner和SpringRunner都可以互换使用。我很困惑为什么SpringRunner也在这种情况下工作?