Java:提取接口(interface)仅用于测试

标签 java testing coding-style interface junit

我想测试我的代码,但我注意到一些业务逻辑类需要大量具有大量状态的对象。但实际上这些类之间的通信仅限于 1 或 2 个方法。

如果我使用这 2 个方法创建一个接口(interface)并且在我的测试中只创建一个什么也不做的模拟对象,这是一种很好的风格吗?

代码将有更多实际上不需要的接口(interface),这就是为什么我不确定这是否是个好主意?

最佳答案

虽然拥有接口(interface)是个好主意,但您不需要接口(interface)来进行模拟。 EasyMock、Mockito 和 PowerMock 都允许模拟具体类。因此,鉴于此,您可以保留代码并使用 Mockito(我个人最喜欢的)来模拟注入(inject)的类。

仅供引用,模拟不应该“什么都不做”。它们应该用每个可能的返回值和每个可能抛出的异常进行测试。

关于Java:提取接口(interface)仅用于测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8788015/

相关文章:

java - 带有反馈机制的工作流的优雅设计

java - java中获取查询的方法的并行加速问题

java - 我可以在父类(super class)的数组上调用子类吗?

testing - 白盒测试如何失败而黑盒测试成功(反之亦然)?

python - 在 python 中分组常量

java - 如何确定flink中的任务槽数

android - 依赖 SQLite 中数据的 Robotium Activity 测试

javascript - 如何测试 JavaScript SVG/Canvas 应用程序?

Java开发标准和工具(与C#相比)

C 约定 - 如何在结构的数组字段上使用 memset