【发布时间】:2012-06-07 03:02:45
【问题描述】:
我想测试我的 Rails 应用程序,尤其是在控制器上,这里是代码
customer_controller_test.rb
require 'test_helper'
class CustomersControllerTest < ActionController::TestCase
include Devise::TestHelpers
setup do
@user = FactoryGirl.create(:user)
@role = FactoryGirl.create(:role)
#puts @role.name
@permission = FactoryGirl.create(:permission)
#puts @permission.name
@role_permission = FactoryGirl.create(:role_permission)
#puts @role_permission.role_id
#puts @role_permission.permission_id
sign_in @user
@customer = FactoryGirl.create(:customer)
end
test "should get index" do
get :index
assert_response :success
assert_template 'index'
assert_not_nil assigns(:customers)
end
test "should show article" do
get :show, :id => @customer.to_param
assert_response :success
assert_template 'show'
assert_not_nil assigns(:customer)
assert assigns(:customer).valid?
end
test "should get new" do
#login_as(@user)
get :new
assert_response :success
end
end
factories.rb
FactoryGirl.define do
sequence :email do |n| "admin@admin.admin#{n}" end
sequence :role_name do |n| n end
sequence :role_id do |n| n end
sequence :permission_id do |n| n end
factory :user do |u|
u.name "Admin"
u.role_id {1}
u.email do FactoryGirl.generate(:email) end
u.password "123456"
u.after(:create) do |user|
user.creator_id {1}
user.save
end
end
factory :customer do
name "Test customer-name"
code "Test customer-code"
address "Test customer-address"
phone "Test customer phone"
end
factory :permission do
name "Customer"
end
factory :role do
name do FactoryGirl.generate(:role_name) end
end
end
我得到了错误
有什么想法吗?谢谢之前
【问题讨论】:
-
“角色不能为空”是一个失败的 Rails 模型验证。似乎您的用户没有获得分配的角色(这似乎是强制性的)。
标签: ruby-on-rails-3 factory-bot functional-testing