【发布时间】:2018-02-03 01:40:58
【问题描述】:
我有一个 Java 接口和几个实现。现在我想使用 Mockito 编写单元测试用例。
我的问题是,我应该为每个实现编写模拟测试用例还是只为接口编写模拟测试用例?在这种情况下,最佳做法是什么?我希望我的问题是有道理的。如果我遗漏了什么,请纠正我。
课程详情:
interface MessageQueue {
add()
poll()
size()
}
class InMemoryMessageQueue implements MessageQueue {
add() {
//implementation
}
poll() {
//implementation
}
size() {
//implementation
}
}
class FileSystemMessageQueue implements MessageQueue {
add() {
//implementation
}
poll() {
//implementation
}
size() {
//implementation
}
}
目前我只有使用 Mockito 的 MessageQueue 接口的单元测试用例。
【问题讨论】:
-
您是在尝试测试实现接口的类,还是其他?如果是前者,则不需要模拟任何东西(除非有其他依赖项);如果是后者,请在需要实现接口的地方使用模拟。
-
正如您所说,您有多个接口的实现,如果您想测试所有不同的实现,那么建议为每个实现编写测试用例。
-
由于我使用的是Mockito,我认为在模拟接口或实现方面没有区别,对吧? mockito 单元测试用例在没有任何改变的情况下可以很好地用于接口和实现。那我为什么要在所有实现测试中都有重复的代码呢?
-
请发布“仅使用 mockito 的 MessageQueue 接口的单元测试用例。”,让我们了解您在这里做什么。
标签: java unit-testing mockito