java 如何测试使用实用程序调用并需要返回其输入的方法?

6jygbczu  于 2023-01-24  发布在  Java
关注(0)|答案(1)|浏览(149)

我有一个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 }
}

我不知道该怎么做。请帮忙,先谢了。

g0czyy6m

g0czyy6m1#

除非您的代码是用Groovy编写的(显然不是),否则使用Spock内置的mocking无法做到这一点。
但是,您可以使用Mockito to do the static mocking
一般来说,我建议不要做任何类似的事情,因为这通常会指向实现的问题。考虑重构您的代码,以便Utils.fixMap实际上被注入,从而可以很容易地模仿。

相关问题