可以模拟一个完整的方法吗?或者我是否必须模拟该方法中的每个服务调用?
这是一个(愚蠢的)例子:
class Foo {
void update() {
service1.do();
service2.do();
//...
}
}
class Bar extends Foo {
void save() {
super.update();
// doSometing that I want to test.
}
}
我想测试 Bar.save() ,并且我想模拟 super.update() 中的所有内容,而不必模拟每个服务本身。那可能吗?
最佳答案
您的 Bar 类是一个 Foo。 Bar 继承了 Foo 的 update 方法。所以你不应该模拟被测类中的方法。选择其中之一会更好:
- 考虑使用合成,然后自然而然地模拟它。
- 继承自 FooTest。你有 Foo 的测试,对吧?你有 @Before 设置模拟那里的所有服务。重复使用它。
关于java - 如何模拟一个完整的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15598560/