使用 shoulda 时出现 NoMethodError validate_presence_of
好吧,我很困惑。我尝试在 Rails 3.1 下将 shoulda 与 Test::Unit 一起使用,之前在 Rails 2.3.11 中成功做到了这一点。
我的 Gemfile 中有以下内容:(
group :test do
gem 'shoulda'
end
并且我已经运行 bundle install
- bundle show Shoulda
显示 c:/Ruby192/lib/ruby/gems/1.9 .1/gems/shoulda-2.11.3
)
我有以下 test_helper.rb
ENV["RAILS_ENV"] = "test"
require File.expand_path('../../config/environment', __FILE__)
require 'rails/test_help'
require 'shoulda'
class ActiveSupport::TestCase
end
和以下 user_test.rb
require 'test_helper'
class UserTest < ActiveSupport::TestCase
should validate_presence_of :email
should validate_format_of(:email).with("[email protected]").with_message(/valid email address/)
should validate_presence_of(:encrypted_password)
should validate_confirmation_of :password
end
但是当我执行 ruby -Itest 时test\unit\user_test.rb,我收到以下错误:
test/unit/user_test.rb:4:in `<class:UserTest>': undefined method `validate_presence_of' for UserTest:Class (NoMethodError)
我未能正确设置什么?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
解决了。您需要:
在
test_helper.rb
中(而不是 `require 'shoulda');并且测试用例必须是:(不是)。
我单独尝试过这两个,但没有一起尝试......
Solved it. You need:
in
test_helper.rb
(not `require 'shoulda'); and the test case needs to be:(not
< ActiveSupport::TestCase
).I'd tried both of those individually, but not together...