Gab*_*vić 6 ruby testing ruby-on-rails
考虑这个例子,我们想检查是否允许用户使用空白名称(它不应该是):
test "name should be present" do
@user.name = " "
assert_not @user.valid?
end
Run Code Online (Sandbox Code Playgroud)
问题是为什么assert_not存在?如果我们这样使用就不会更好assert:
test "name should be present" do
@user.name = " "
assert !@user.valid?
end
Run Code Online (Sandbox Code Playgroud)
它的存在可能是为了从你的断言中删除修饰符,这可能会改变它们的结果或模糊你实际询问的内容。事实上,这主要是一种风格选择。
这与使用该语言的动机是相同的unless,而不是这样写:
if !@user.valid?
# do stuff
end
Run Code Online (Sandbox Code Playgroud)
你会这样做:
unless @user.valid?
# do stuff
end
Run Code Online (Sandbox Code Playgroud)
诚然, if/unless 差异读起来比更好assert_not,唉,这就是 Minitest 单元测试将为您带来的结果。如果您想让内容读起来更自然,请查看 Minitest 规范或 RSpec。
| 归档时间: |
|
| 查看次数: |
1067 次 |
| 最近记录: |