【发布时间】:2014-04-24 14:43:11
【问题描述】:
我想将这个规范翻译成 MiniTest。
describe User do
subject { build(:user, provider: 'foo') }
# don't validate presence of password when provider is present
it do
should_not validate_presence_of(:password)
end
end
我试过这个。我收到undefined method 'should_not' for UserTest 的错误
class UserTest < ActiveSupport::TestCase
def setup
@user = build_stubbed(:user)
end
test "responds to name" do
assert_respond_to @user, :name
end
should validate_presence_of(:password)
test "do not validate presence of password when provider is present" do
build_stubbed(:user, provider: 'foo')
should_not validate_presence_of(:password)
end
end
我想更改一项测试的上下文,其中受试者获得provider 属性,这应该禁用密码字段上的存在验证器。
这是完整的错误:
UserTest#test_presence_of_password:
NoMethodError: undefined method `should_not' for #<UserTest:0x007feaa82c1c68>
test/models/user_test.rb:45:in `block in <class:UserTest>'
【问题讨论】:
-
我认为
should匹配器是一个附加组件?假设您很乐意通过猴子修补Object来获取它们;您确定要首先使用 should-style 吗? RSpec 离开它是有原因的。 -
@DaveNewton 我正在使用 gem
shoulda-matchers并且效果很好。我只是不知道如何更改属性更改的单个测试的上下文。我在我的问题中添加了一行来解释这一点。 -
@DaveNewton 我认为我的问题令人困惑。我改变了它。我真的在问应该语法。
标签: ruby-on-rails ruby rspec minitest shoulda