【发布时间】:2020-08-27 11:00:32
【问题描述】:
到此为止,我有点不知所措。一直试图找到一个简单的版本,使用 request_spec.rb 在 RSpec 中编写一些基本的控制器测试以更好地理解它们,但是很多都是复杂的,用我读过的 controller_spec 编写的现在已弃用或为纯粹的 rails 构建app 不是 Rails API。
RSpec.describe "Users", type: :request do
it "request list of all users" do
user = User.create(name: "Ben", age: 20, favourite_mums_dish: "Spaghetti")
get("/users")
expect(response).to be_successful
expect(response).to have_http_status(:success)
expect(response.body).to include("Ben")
end
end
最后一个不适用于一个
Failure/Error: expect(response.body).to include("Ben")
expected "" to include "Ben"
我将如何创建一个基本测试来简单地测试该用户已被创建并且响应包含它?
非常感谢您提前提供的帮助。任何文档都会有所帮助,因为我也不完全理解 Relish 文档。
【问题讨论】:
-
我认为您的测试没有问题。您能否分享
UsersController#index的代码和相关的索引视图?如果User.name属性未传递给视图或未显示在视图中,则测试可能只是正确地识别了该问题。 -
您确定您的用户实际上是被创建的吗?将
create更改为create!并查看是否引发了任何异常。
标签: ruby-on-rails testing rspec-rails