我有一个Java方法,看起来像这样:
public Map<String <Set<Something>> mathod() {
Map<String, Set<Something>> originalMap = createMap();
return Utils.fixMap(originalMap);
}
我有一个groovy/spock测试,我需要测试这个方法,我需要模拟Utils并让fixMap()返回它的输入。
最初,Utils方法是一个服务,它被这样嘲笑:
UtilService mock = Mock(UtilService) {
fixMap(_ as Map) >> { Map input -> return input }
}
我不知道该怎么做。请帮忙,先谢了。
1条答案
按热度按时间g0czyy6m1#
除非您的代码是用Groovy编写的(显然不是),否则使用Spock内置的mocking无法做到这一点。
但是,您可以使用Mockito to do the static mocking。
一般来说,我建议不要做任何类似的事情,因为这通常会指向实现的问题。考虑重构您的代码,以便
Utils.fixMap
实际上被注入,从而可以很容易地模仿。