我有一个XXXController,它是baseController的子类。 我想测试xxxController,我需要从baseController中存根一个方法调用。
我尝试过类似的东西:
controller.xxxMethod(_) >> false
但它没有用。
有人知道如何使用Spock在子类中存根baseController方法吗?
答案 0 :(得分:1)
您正在尝试模拟/存根被测试的类,这是一种反模式。我会告诉你看看间谍和部分嘲笑(http://spock-framework.readthedocs.org/en/latest/interaction_based_testing.html#partial-mocks),但正如你所看到的,甚至官方文件都说"在使用这个功能之前请三思。"
所以我的建议是重构你的代码,其中被测试的类是真正的类,只有协作者被模拟/存根。