我想测试我的代码,但我注意到一些业务逻辑类需要大量具有大量状态的对象。但实际上这些类之间的通信仅限于 1 或 2 个方法。
如果我使用这 2 个方法创建一个接口(interface)并且在我的测试中只创建一个什么也不做的模拟对象,这是一种很好的风格吗?
代码将有更多实际上不需要的接口(interface),这就是为什么我不确定这是否是个好主意?
最佳答案
虽然拥有接口(interface)是个好主意,但您不需要接口(interface)来进行模拟。 EasyMock、Mockito 和 PowerMock 都允许模拟具体类。因此,鉴于此,您可以保留代码并使用 Mockito(我个人最喜欢的)来模拟注入(inject)的类。
仅供引用,模拟不应该“什么都不做”。它们应该用每个可能的返回值和每个可能抛出的异常进行测试。
关于Java:提取接口(interface)仅用于测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8788015/