我是否针对控制器请求规范定位了正确的规格?

时间:2018-03-16 08:15:32

标签: ruby-on-rails rspec

我有一个带有以下操作的示例控制器,我正在编写一个请求规范:

def subscribe_user
  concept = UsersConcept::Subscribe.new(user_params)
  concept.run

  respond_to do |format|
    format.html { redirect_to users_path, notice: concept.notice_msg }
  end
end

private

def user_params
  params.require(:user).permit(:id, :channel_id)
end

我是否正确编写以下测试:

  1. UsersConcept::Subscribe来电new
  2. 上面#1的结果调用run
  3. 或者我应该专注于编写测试以验证重定向,错误消息等。 提前谢谢。

1 个答案:

答案 0 :(得分:1)

停止编写控制器测试,制作请求规范

Rails和RSpec团队建议更换或删除应用程序的控制器测试(也称为功能测试层),支持直接测试模型(单元)或更高级别的集成测试。

在这里您可以找到文章和一些示例代码:

https://everydayrails.com/2016/08/29/replace-rspec-controller-tests.html

对于您的操作,您可以测试重定向,成功或错误消息,订阅表中的数据库更改...