【问题标题】:JMock expectations oneOf VS one differenceJMock 期望 oneOf VS 一个区别
【发布时间】: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可能意味着,在一种测试方法中,我期望只调用该方法。
也许这只是我对定义的误解。

【问题讨论】:

    标签: junit jmock expectations


    【解决方案1】:

    没有区别。 oneOf(mockObject) 只是 exactly(1).of(mockObject) 的别名。

    看看AbstractExpectations.java的源码

    【讨论】:

    • 嗯,这终于说得通了 :) 一个是旧的不推荐使用的方法,它可能被重命名为 oneOf 所以 one = oneOf = exact(1).of 并且不应再使用一个。谢谢洛根
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多