单元测试方法控制器调用继承

时间:2015-01-15 15:28:53

标签: unit-testing grails spock

我有一个XXXController,它是baseController的子类。 我想测试xxxController,我需要从baseController中存根一个方法调用。

我尝试过类似的东西:

controller.xxxMethod(_) >> false 

但它没有用。

有人知道如何使用Spock在子类中存根baseController方法吗?

1 个答案:

答案 0 :(得分:1)

您正在尝试模拟/存根被测试的类,这是一种反模式。我会告诉你看看间谍和部分嘲笑(http://spock-framework.readthedocs.org/en/latest/interaction_based_testing.html#partial-mocks),但正如你所看到的,甚至官方文件都说"在使用这个功能之前请三思。"

所以我的建议是重构你的代码,其中被测试的类是真正的类,只有协作者被模拟/存根。