【问题标题】:Rails 5.1 syntax to test flash message in a system testRails 5.1 语法在系统测试中测试 flash 消息
【发布时间】:2021-07-06 00:55:53
【问题描述】:

您知道使用系统测试来测试 Flash 消息的语法吗?

这就是我目前的写作方式......

test 'New User signup' do
  # ...
  click_button 'Create User'
  assert_equal 'User was successfully created.', flash[:notice]
end

失败的测试屏幕截图显示闪存在那里,但测试失败

NoMethodError: NoMethodError: undefined method `flash' for nil:NilClass

【问题讨论】:

    标签: ruby-on-rails


    【解决方案1】:

    我最终改变了断言:

    assert_equal 'User was successfully created.', flash[:notice]
    

    到:

    assert_selector "#notice", text: 'User was successfully created.'
    

    这似乎可以解决问题。

    【讨论】:

    • 这里有其他使用 rspec 和 shoulda 测试 flash 消息的方法(相当古老但仍然有效):stackoverflow.com/questions/24919976/…
    • @StandardNerd 如果您正在进行 Rails 5 集成测试,则并不真正相关 - 而不是控制器测试。
    • 您正在做的是“正确”的方式。您实际上是在测试用户看到的页面,而不是在内部戳。
    猜你喜欢
    • 2017-12-11
    • 1970-01-01
    • 2017-10-22
    • 2013-04-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-04
    相关资源
    最近更新 更多