问题描述
|
我试图在我的客户控制器上运行一些测试。当我手动测试控制器时,一切工作正常,但是当我对其进行书面集成测试时,会出现错误。这是我的测试代码:
context \"non-empty Customer model\" do
setup do
@customer = Customer.first || Customer.create(:name => \"John\",:address => \"123 Street Cool\",:telephone => \"01484349361\",:email => \"johnsmith@world.com\")
end
should \"be able to create\" do
get \"/customers/new\"
assert_response :success
post \"/customers/create\",:post => @customer
# assert_response :success
assert_redirected_to \"/customers/list\"
end
我得到的错误是在assert_redirected_to行上,它说:
期望的块返回真实值。
这是我的控制器代码,用于执行新的/创建操作:
def new
@customer = Customer.new
respond_to do |format|
format.html # new.html.erb
format.xml { render :xml => @customer }
end
end
def create
# Instantiate a new object using form params
@customer = Customer.new(params[:customer])
# Save the object
if @customer.save
# If save succeeds,redirect to the list action
flash[:notice] = \"Customer created.\"
redirect_to(:action => \'list\')
else
# If save fails,redisplay the form so user can fix problems
render(\'new\')
end
end
我非常感谢您对使测试正常进行的任何帮助。
谢谢。
解决方法
好像您发送了错误的信息作为参数。
should \"be able to create\" do
get \"/customers/new\"
assert_response :success
post \"/customers/create\",:customer => @customer.attributes
assert_redirected_to \"/customers/list\"
end