【发布时间】:2018-11-28 11:48:04
【问题描述】:
我们有一个带有事务注释方法的类
public class MyHandler extends BaseHandler {
@Transactional
public void annotatedMethod(String parameter) throws Exception {
}
一旦我们尝试使用 mockito 及其注释进行测试
@InjectMocks
private Controller controller;
@Mock
private MyHandler myHandler;
执行以下行时出现空指针异常
Mockito.doCallRealMethod().when(myHandler).annotatedMethod(Matchers.any());
我们尝试使用与Transactional annotation avoids services being mocked 相同的解决方案,但没有成功。
我们是 mockito 的新手,我们不知道如何解决这个问题。 有什么线索吗?
非常感谢, 埃琳娜
【问题讨论】:
-
嗨 Elena,
MyHandler是正在测试的班级吗?如果是这样,那么嘲笑它可能不起作用。@Transactional注释不会影响Mockito的行为,如所述使用。如果没有一些错误输出,很难确切地知道问题的根本原因是什么。我的猜测是,您委托的 real 方法 依赖于MyHandler中的其他方法,并在模拟调用它们时从它们那里得到一个空值。如果不设置替代项,mockito 对象上的所有函数都会返回 null、false、0 等。 -
你好阿什利,我已经解决了这个问题,它与注释无关。这是 Mockito 返回 null。感谢您的帮助
标签: annotations mockito transactional