Ruby Padrino rspec控制器测试始终为绿色
我正在padrino上用rspec测试控制器,代码如下: 如果我运行测试,一切正常,所有测试都将是绿色的。 问题是这些测试一定会失败!before块上的sign_in_admin不允许用户登录并拨打post电话,如果我更改了线路也不允许Ruby Padrino rspec控制器测试始终为绿色,ruby,rspec,sinatra,padrino,Ruby,Rspec,Sinatra,Padrino,我正在padrino上用rspec测试控制器,代码如下: 如果我运行测试,一切正常,所有测试都将是绿色的。 问题是这些测试一定会失败!before块上的sign_in_admin不允许用户登录并拨打post电话,如果我更改了线路也不允许 last_response.should_not be_ok 与 考试总是绿色的。。。。。 我不知道我错在哪里 这是我的spec_helper.rb 您的代码总是通过的原因是您的测试采用以下形式: lambda {}.should {} 这相当于 lamb
last_response.should_not be_ok
与
考试总是绿色的。。。。。
我不知道我错在哪里
这是我的spec_helper.rb
您的代码总是通过的原因是您的测试采用以下形式:
lambda {}.should {}
这相当于
lambda {}.should
因为应该
忽略传递给它的任何块。这进一步等同于:
lambda {}.should be_truthy
它总是成功的,因为lambda{}
是一个Proc
,这是真实的
如果您希望应
执行该程序以评估副作用(例如引发错误、与其他对象交互),则只应将应
发送到程序
,该副作用的形式为引发错误
和更改
。将块传递给expect
(当前语法)也是如此
在您的情况下,只需执行当前lambda表达式中的代码,然后检查last\u response
的值,如下所示:
it '...' do
post ...
last_response.should be_ok
end
或者更流行的:
it '...' do
post ...
expect(last_response).to be_ok
end
it '...' do
post ...
expect(last_response).to be_ok
end