【发布时间】:2014-06-12 19:00:16
【问题描述】:
我正在尝试做一个非常简单的请求规范来测试我的应用程序中的 API 方法。现在我收到了 302 消息,而我应该通过这个测试获得 200 条消息。
规格:
require 'spec_helper'
describe UsersController do
describe "#create" do
it "creates a new user " do
post '/users', user: FactoryGirl.attributes_for(:user)
expect(response.status).to eq 200
end
end
end
工厂:
FactoryGirl.define do
factory :user do
sequence(:name) { |n| "Person #{n}" }
sequence(:username) { |n| "Person#{n}" }
sequence(:email) { |n| "person_#{n}@example.com"}
password "foobar"
password_confirmation "foobar"
end
end
控制器方法:
def create
@user = User.new(user_params)
respond_to do |format|
if @user.save
format.html { redirect_to @user, notice: 'User was successfully created.' }
format.json { render :show, status: :created, location: @user }
else
format.html { render :new }
format.json { render json: @user.errors, status: :unprocessable_entity }
end
end
end
我错过了什么?
【问题讨论】:
-
从您的代码中,您在给出非异步请求时显然提到了重定向。
-
我实际上只想测试 json 响应,而不是 html 响应。为此,我在测试中遗漏了什么?
标签: ruby-on-rails rspec request integration-testing