Ruby on rails Rspec rails:检查object.value是否为false
我正在rails中测试一个cron作业,我想测试object的属性在默认情况下是否为false,这是执行该作业的代码部分:Ruby on rails Rspec rails:检查object.value是否为false,ruby-on-rails,rspec,type-conversion,boolean,Ruby On Rails,Rspec,Type Conversion,Boolean,我正在rails中测试一个cron作业,我想测试object的属性在默认情况下是否为false,这是执行该作业的代码部分: describe ".perform()" do before :each do SendReportCronJob.perform() end context "automatically_send_report" do it "should be false by default" do binding
describe ".perform()" do
before :each do
SendReportCronJob.perform()
end
context "automatically_send_report" do
it "should be false by default" do
binding.pry()
expect( automatically_send_report.value ).to be "false"
end
end
context "time_limit" do
it "should not be nil" do
expect( time_limit_for_sending_report.value ).to_not be_nil
end
end
end
问题是自动发送报告。值返回“false”值
这里是我执行binding.pry()操作时rails控制台的输出:
#<Setting:0x00000009990878> {
:id => "69617295-4209-4092-80cf-5934d1cf7d38",
:related_id => "cd830ace-933a-4230-ad54-bd94e63d5d7b",
:key => "automatically_send_report",
:value => "false",
:data_type => "boolean",
:is_archived => false,
:updated_by_id => nil,
:device_id => nil,
:created_at => Wed, 18 Apr 2018 18:34:35 +03 +03:00,
:updated_at => Wed, 18 Apr 2018 18:34:35 +03 +03:00
}
#{
:id=>“69617295-4209-4092-80cf-5934d1cf7d38”,
:related_id=>“cd830ace-933a-4230-ad54-bd94e63d5d7b”,
:key=>“自动发送报告”,
:value=>“false”,
:data_type=>“boolean”,
:is_archived=>false,
:通过\u id=>nil更新\u,
:device_id=>nil,
:创建时间=>2018年4月18日星期三18:34:35+03+03:00,
:更新时间=>2018年4月18日星期三18:34:35+03+03:00
}
我可以在
rspec
文件中将该值从字符串转换为布尔值吗 您不需要将字符串转换为布尔值,也可以比较字符串,但在这种情况下,您需要使用eq
而不是be
,因为它们是具有相同值的不同对象:
expect(automatically_send_report.value).to eq "false"
谢谢安娜·玛丽亚!