Rspec Rails-expect的Capybara语法
这是测试单击按钮是否更改了用户数量的正确代码:Rspec Rails-expect的Capybara语法,rspec,Rspec,这是测试单击按钮是否更改了用户数量的正确代码: 期望{单击按钮“创建我的帐户”}。不更改(用户::计数)(正确) 但是这些卷曲的大括号看起来很奇怪地放在上面。为什么水豚使用上面的语法而不是下面的语法 expect{单击按钮(“创建我的帐户”)。不更改(用户::计数)}(不正确)expect{}正在指定一个代码块,执行后根据change关键字测试该代码块。请参见每个Ruby方法都需要。块用do…end构造或大括号表示 def my_method yield end my_method { p
期望{单击按钮“创建我的帐户”}。不更改(用户::计数)
(正确)
但是这些卷曲的大括号看起来很奇怪地放在上面。为什么水豚使用上面的语法而不是下面的语法
expect{单击按钮(“创建我的帐户”)。不更改(用户::计数)}
(不正确)expect{}正在指定一个代码块,执行后根据change关键字测试该代码块。请参见每个Ruby方法都需要。块用do…end
构造或大括号表示
def my_method
yield
end
my_method { puts "hello world" }
"hello world"
=> nil
my_method do
puts "hello world again!"
end
"hello world again!"
=> nil
expect
在本例中是一种方法,而不是水豚法。大括号表示您正在定义稍后将执行的代码。在这种情况下,它将在两次调用某个等价的User.count
之间执行
# approximation of what RSpec is doing with `expect` curly braces.
count = User.count
yield # executes code in curly braces
new_count = User.count
assert(count == new_count)
这与水豚无关-