我写了这个测试:
test "email validation should accept valid address" do
valid_addresses = %w[user@eee.com R_RDD@adf.com user@gmail.com hi12@hi.co a]
valid_addresses.each do |e|
@chef.email = e
assert @chef.valid?, '#{e.inspect} should be valid'
end
end
当我进行rake测试时,失败的消息是
1) Failure:
ChefTest#test_email_validation_should_accept_valid_address [/home/ubuntu/workspace/test/models/chef_test.rb:56]:
#{e.inspect} should be valid
20 runs, 23 assertions, 1 failures, 0 errors, 0 skips
而不是| e |应该... 我希望看到像" a"应该是一个有效的更像描述性的消息来查看变量和检查方法值。 请帮助。
答案 0 :(得分:1)
您需要使用字符串插值。哪个可以使用""
,而不是''
。
assert @chef.valid?, "'#{e.inspect}' should be valid"
您不需要e.inspect
,只有e
就足够了。像:
assert @chef.valid?, "'#{e}' should be valid"
还有一个建议是,您可以使用包含所有错误的类ActiveModel::Errors
的实例:
assert @chef.valid?, @chef.errors[:email]