1
我想創建一個功能測試,測試我的控制器之一的創建方法。對於我的生活,我無法弄清楚爲什麼這是失敗的。我得到一個失敗,零個失誤:職位功能測試失敗
1) Failure:
test_should_create_order(OrdersControllerTest) [/Users/user/rails_work/depot/test/functional/orders_controller_test.rb:38]:
"Order.count" didn't change by 1.
<3> expected but was
<2>.
所以,Im相當肯定,這意味着我的函試驗無法作出命令。下面是我的測試:
setup do
@order = orders(:one)
end
test "should create order" do
assert_difference('Order.count') do
post :create, order: @order.attributes.slice(Order.accessible_attributes)
end
assert_redirected_to store_url
end
我的訂單夾具:
one:
name: Dave Thomas
address: MyText
email: [email protected]
pay_type: Check
和我的訂單號創建控制器:
def create
@order = Order.new(params[:order])
@order.add_line_items_from_cart(current_cart)
respond_to do |format|
if @order.save
Cart.destroy(session[:cart_id])
session[:cart_id] = nil
format.html { redirect_to store_url, notice: 'Thank you for your order' }
format.json { render json: @order, status: :created, location: @order }
else
@cart = current_cart
format.html { render action: "new" }
format.json { render json: @order.errors, status: :unprocessable_entity }
end
end
end
現在,如果我在我的功能測試更改的設置方法:
@order = Order.create(orders(:one))
取而代之o F:
@order = orders(:one)
故障消失,但我得到這些錯誤的約8:
NoMethodError: undefined method `stringify_keys' for #<Order:0x007f8c62dbb960>
如果有人可以幫助我解決這個功能測試,我會多欣賞它。任何和所有的投入是受歡迎的。
也許你的授權失敗,您的帖子中不被創建的訂單? – jdoe 2012-07-23 06:46:19
我將如何檢查自動化?我用Google搜索了一下,但我找不到它。 – flyingarmadillo 2012-07-23 08:59:27
你做了一些'before_filter'來檢查用戶是否登錄?也許你的'create'行爲根本不被調用? – jdoe 2012-07-23 09:19:54