11
16

期望方法多于(少于)一次

入门仅演示了期望对一个模拟对象的一个调用.测试经常需要使用不同基准的期望来允许一些方法调用发生,但如果不发生不会失败,期望方法被调用多次或不是全部,或忽略不相关的拟对象.

一个期望的调用次数定义了期望的这个方法允许被调用最小和最大次数.它在期望中的模拟对象前被指定.

invocation-count (mock).method(parameters); ...

JMock定义了下列基准:

one 调用期望一次且仅一次.
exactly(n).of 调用期望正是n次.注意:one是exactly(1)方便的表达.
atLeast(n).of 调用期望至少n次.
atMost(n).of 调用期望最多n次.
between(min, max).of 调用期望至少min次,最多max次.
allowing 调用允许任何次但不必须发生.
ignoring 和allowing相同. Allowing和ignoring应该被选择来使测试代码清晰表达意图.
never 调用根本不期望.这会使测试更加明确和易懂.

Expecting vs. Allowing

expecting和allowing一个调用时最重要的区别是基准表达.

如果一个调用是允许的,在测试中它可以发生,但如果调用不发生,测试依然通过.如果一个调用被期望,则相反,它必须在测试中发生,如果它不发生,测试失败.当定义期望时你必须选择是期望还是允许每个调用.总的来说,我们发现如果你允许查询和期望命令测试可以保持灵活.一个查询是除了查询对象状态没有任何副作用的方法,一个命令是可以返回也可以不返回结果有副作用的方法. 当然,这并不适用于所有情况.如果你在测试中期望的方法被调用的次数没有其它约束遵循经验方法是有用的.

17fav 收藏本文

相关日志

本站文章除特别标示外,其他文章都属于原创内容,转载请按以下格式注明:

本文来源:舞命小丢

原文链接:http://thinking.5ming.org.cn/2008/11/16/jmock-cookbook-cardinality/

TrackBack:http://thinking.5ming.org.cn/2008/11/16/jmock-cookbook-cardinality/trackback/

标签: ,

你对 jMock Cookbook 期望方法多于(少于)一次 还满意吗? 赶快来订阅RSS Feed.

一个朋友 对这篇 “jMock Cookbook 期望方法多于(少于)一次”发表了评论

  
  1. 第 1 楼:  jMock Cookbook期望调用顺序 | 舞命小丢

    [...] « jMock Cookbook期望方法多于(少于)一次 [...]

你有什么想说的吗? 那就请在下面留言吧.

XHTML: 你可以使用的标签: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="">

收藏 & 分享

Powered by 17fav.com