Grails单元测试,模拟方法'mockFor()'不能很好地工作

时间:2014-04-01 04:51:33

标签: java unit-testing grails

似乎Grails单元测试utils方法mockFor并不像文档中所说的那样工作。

def strictControl = mockFor(MyService)
strictControl.demand.someMethod(0..2) { String arg1, int arg2 -> … }
strictControl.demand.static.aStaticMethod {-> … }
  

请注意,您可以使用模拟静态和实例方法   "静态"属性。然后,您可以指定方法的名称   mock,带有可选的范围参数。这个范围决定了多少   你希望调用方法的时间,以及数量   调用超出该范围(太少或太多)   然后会抛出一个断言错误。如果未指定范围,则a   默认为" 1..1"假设,即必须调用该方法   一次。

但是,在我测试的方法中,我有条件调用someMethod,如果是,则调用someMethod,否则不调用。如果它进入正面条件(这意味着调用someMethod)。

在我的测试中,我有一个类似于下面的模拟:

def strictControl = mockFor(MyService)
strictControl.demand.someMethod(0..0) { String arg1, int arg2 -> … }

'0..0'从我对文档的理解意味着someMethod应该被称为零时间(从未被调用)。我的测试仍然通过。

我不知道为什么调用的时间完全匹配。

0 个答案:

没有答案