我正在尝试使用jMock来创建一个模拟对象。 模拟对象看起来很好 - 但问题是它没有注入测试类。 这是我的代码:
@RunWith(JMock.class)
public class FeederFilterTest {
private TestedClass service;
@Mock
private TheMockedInterface mock;
...
}
@Service
public class TestedClass {
@Autowired
private TheMockedInterface interface;
...
}
正如我所说 - 模拟对象是按预期创建的 - 但是当我调用TestClass
上使用TheMockInterface
的方法时 - 我得到一个NullPointerException。
我知道Mockito有@InjectMocks
- jMock也有这样的东西吗?
答案 0 :(得分:2)
JMock不拦截自动实例创建。这是一个设计选择。我们的观点是,内部创建的对象不应该太复杂,以至于需要模拟。任何做的事都应该传入,并且依赖性是明确的。还有其他框架可以做这些聪明的事情,我相信有人会很快在这里发布链接:)