为什么 ERB 不在 Rails 查看规范中执行?

Why is ERB not executing in Rails view spec?

我正在尝试让一些 ERB 在视图规范中执行。

我有一个测试一些简单 ERB 逻辑的视图规范。 这是视图文件:

<!DOCTYPE html>
<html>
  <body>
    <%= puts 'hello world' %>
  </body>
</html>

在我的规范中,我有这样的期望:

expect(response.body).to include('hello')

但是,规范并未执行 ERB。 正文返回一些内容,但 <body></body> 的内部什么都不包含。

关于如何让 ERB 代码执行的任何想法? 这可能是一个配置问题。 此规范是 Rails 引擎的一部分(如果有帮助,请分享)。

服务器本地运行时,执行ERB,出现“hello world”。 试图找出如何让 RSpec 执行 ERB。

<%= %> 这将计算表达式并在其位置附加 return 值。在你的情况下,里面的表达式是 puts("hello world") 它将 return nil.

所以执行后 nil 被附加到 body 标签内。为此,将其更改为

<!DOCTYPE html>
<html>
  <body>
    <%= 'hello world' %>
  </body>
</html>