使用Spy来Mock内部调用的方法
如果使用Spy不生效参考
使用前先看看哪些场景不生效,避免浪费太多时间,我曾经就是mock一个方法折腾两个小时都没弄出来,后来问了 小美智能助理 ,告诉我其中private修饰的方法不生效..我把private改成protected
修饰之后, 再次重启单测,立马就好使了.
https://blog.csdn.net/qq_41489540/article/details/139861513
示例
在Spock框架中,要mock一个类中调用的另一个方法,通常需要使用Spock的Spy功能。Spy允许你在一个实例上部分地mock方法,这意味着你可以选择性地mock某些方法,而其他方法则保持原有行为。以下是如何使用Spy来mock内部方法调用的步骤:
示例代码
假设你有一个Calculator
类,它有一个calculate
方法,这个方法内部调用了add
方法。你想要mock掉add
方法。
class Calculator {
int calculate(int a, int b) {
return add(a, b)
}
// 内部调用的方法
private int add(int a, int b) {
return a + b
}
}
class CalculatorSpec extends Specification {
def "should mock internal add method"() {