0

我正在尝试使用 rspec 评估以下代码。

给定:

   # book = ...
   Rails.logger.info book.inspect

上面的代码打印出返回类型的值为booleanie{:foo=>false}

   eval(book[:foo]).should be_false

但这似乎不起作用。在尝试运行 rspec 时,它会引发以下异常:

 Failure/Error: eval(book[:foo]).should be_false
 TypeError:
   can't convert false into String

那么,我如何评估一个方法的布尔值,比如我的最终结果是等价的?

4

1 回答 1

2

eval执行传递的参数,将其解释为 Ruby 代码。您认为false对象中包含哪些 Ruby 代码?

eval(false)   # cannot execute false object
eval("false") # executes a string and returns false object

看到不同?

我不知道你到底在测试什么,但你可以简单地尝试

book[:foo].should be_false
于 2012-07-23T10:26:40.497 回答