测试 assert_difference 干嘛用的?

xiaoronglv · 2012年10月14日 · 最后由 pongyo 回复于 2012年10月14日 · 2891 次阅读

assert_difference(expressions, difference = 1, message = nil) {...}

Test numeric difference between the return value of an expression as a result of what is evaluated in the yielded block.

没看懂文档,谁能给细说一下啊。附上一范例。

test "should create post" do
  assert_difference('Post.count') do
    post :create, :post => { :title => 'Hi', :body => 'This is my first post.'}
  end
  assert_redirected_to post_path(assigns(:post))
  assert_equal 'Post was successfully created.', flash[:notice]
end

非常感谢。

就是执行完 代码块里的内容后,Post.count 这个值会比执行前变化为 +1 (默认)

需要 登录 后方可回复, 如果你还没有账号请 注册新账号