为什么摩卡不抱怨期望值?
我已经把摩卡摆弄了好几天了,似乎无法让它正常工作。
我正在使用 Rails 3.1.0.rc4 和 Mocha 0.9.12,在 Ruby 1.9.2-p180 下运行。在我的 Gemfile 中,我有一个
gem 'mocha', :require => false
,并且我需要在 test_helper.rb 的最后一行使用 Mocha,
require 'mocha'
正如各种问题和博客文章中所建议的那样。
但是,当创建一个新的 Rails 项目并编写如下简单测试时:
test "test 1" do
User.any_instance.expects(:something).returns(true)
u = User.new
assert u.something
end
test "test 2" do
User.any_instance.expects(:something).returns(true)
u = User.new
end
test "test 3" do
u = mock()
u.expects(:something).at_least_once
end
所有测试都通过,没有任何错误。所以,模拟是有效的(因为 :something 不是一个真正的函数),但在第二次和第三次测试中我希望 Mocha 会抱怨 :something 没有被调用。
使用“MOCHA_OPTIONS=debug”运行测试说
Detected MiniTest version: 1.6.0
Monkey patching MiniTest >= v1.4.2 and <= v1.7.2
谁能告诉我我在这里缺少什么?
I'm messing around with Mocha for days and cannot seem to get it working properly.
I'm using Rails 3.1.0.rc4 and Mocha 0.9.12, running under Ruby 1.9.2-p180. In my Gemfile I have a
gem 'mocha', :require => false
and I require Mocha in the last line of my test_helper.rb
require 'mocha'
as suggested in various questions and blog posts.
However, when creating a new Rails project and writing simple tests like the following:
test "test 1" do
User.any_instance.expects(:something).returns(true)
u = User.new
assert u.something
end
test "test 2" do
User.any_instance.expects(:something).returns(true)
u = User.new
end
test "test 3" do
u = mock()
u.expects(:something).at_least_once
end
All test pass without any errors. So, mocking works (because :something is not a real function) but in the second and third test I would expect Mocha to complain about :something not being called.
Running tests with "MOCHA_OPTIONS=debug" says
Detected MiniTest version: 1.6.0
Monkey patching MiniTest >= v1.4.2 and <= v1.7.2
Can anyone tell me what I'm missing here?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论