尝试使用rspec评估以下代码。
鉴于:
# book = ...
Rails.logger.info book.inspect
上面的代码打印返回类型的值为boolean
,即{:foo=>false}
eval(book[:foo]).should be_false
但这似乎不起作用。在尝试运行rspec时,它会抛出以下异常:
Failure/Error: eval(book[:foo]).should be_false TypeError: can't convert false into String
那么,我如何评估一个方法的布尔值,比如我的最终结果是等价的呢?
答案 0 :(得分:2)
eval
执行传递的参数将其解释为Ruby代码。您认为哪些Ruby代码包含在false
对象中?
eval(false) # cannot execute false object
eval("false") # executes a string and returns false object
看到区别?
我不知道你究竟在测试什么,但你可以尝试一下
book[:foo].should be_false