ruby-on-rails - 如何使用 rspec 为通知消息编写测试用例

标签 ruby-on-rails rspec notice

在我的应用程序中,我有一个主题 Controller ,我需要编写一个测试用例来创建一个新主题。创建新话题后,会跳转到新创建话题的展示页面,并提示“话题创建成功!”。我需要编写一个测试用例来检查显示的通知是否正确使用 rspec。我有主题 Controller :

 def create
@topic = Topic.new(topic_params)
if (@topic.save)
  redirect_to @topic, :notice => 'Topic was created successfully!'
else
  render :action => 'new'
end
end

主题 Controller 规范:
it "should create new Topic and renders show" do
    expect {
      post :create,params:{ topic:{topicname: "Tech"} }
    }.to change(Topic,:count).by(1)
    expect(response).to redirect_to(topic_path(id: 1))
   /// expect().to include("Topic was created successfully!")
  end

我已经编写了重定向到显示页面的测试用例。但是我坚持检查我在代码中的评论中提到的通知。

最佳答案

你应该做这样的事情

expect(flash[:notice]).to match(/Topic was created successfully!*/)

关于ruby-on-rails - 如何使用 rspec 为通知消息编写测试用例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52143826/

相关文章:

ruby-on-rails - 脚手架一代

ruby-on-rails - ActiveRecord 回调未执行

ruby-on-rails - 在 Rspec 中使用 Factory Girl

php - 基本 PHP 脚本中 undefined offset 注意事项

php - WooCommerce:添加要注意的类

ruby-on-rails - 我如何安全且廉价地允许在我的网站上显示图片?

ruby-on-rails - 如何将局部变量从rails 3中的应用程序布局传递给部分?

ruby-on-rails - Rails 3教程第11章 "Validation failed: Email has already been taken"错误

ruby-on-rails-3 - 使用 Capybara + Selenium 时禁用 JavaScript

php - 在 Woocommerce 结帐页面中添加信息丰富的自定义消息