JMock 期望 oneOf VS 一个区别
Posted
技术标签:
【中文标题】JMock 期望 oneOf VS 一个区别【英文标题】:JMock expectations oneOf VS one difference 【发布时间】:2015-10-12 13:23:21 【问题描述】:在 JMock 中使用 one() 或 oneOf() 有什么不同吗? Cheat sheet 说: oneOf = 只需要调用一次。 exact(n).of = 调用恰好是 n 次。注意:一个是精确 (1) 的方便简写。 在测试中我可以看到使用一个,而在其他测试中有一个。问题是这个关键字之间是否有任何区别,或者它意味着同样的事情。 在前面提到的备忘单中也有例子:
oneOf (calculator).add(1, 1); will(returnValue(2));
oneOf (calculator).add(2, 2); will(returnValue(5));
这可能表示 oneOf 意味着我预计可能会调用更多方法 add 并且在这种情况下有两个调用(其中一个是参数 1 和 1,第二个是参数 2 和 2)。 但是,exactly one又名exactly(1).ofexactly one可能意味着,在一种测试方法中,我期望只调用该方法。 也许这只是我对定义的误解。
【问题讨论】:
【参考方案1】:没有区别。 oneOf(mockObject)
只是 exactly(1).of(mockObject)
的别名。
看看AbstractExpectations.java的源码
【讨论】:
嗯,这终于说得通了 :) 一个是旧的不推荐使用的方法,它可能被重命名为 oneOf 所以 one = oneOf = exact(1).of 并且不应再使用一个。谢谢洛根以上是关于JMock 期望 oneOf VS 一个区别的主要内容,如果未能解决你的问题,请参考以下文章
protobuf“oneof”子protobuf对象指针杀死程序