1
컨트롤러 중 하나에서 create 메소드를 테스트하는 기능 테스트를 만들려고합니다. 내 인생에서 왜 이것이 실패하고 있는지 알 수 없습니다. post 기능 테스트가 실패 함
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>.
그래서, 필자는 확신이 내 함수 (Functionals) 테스트가 주문을 할 수 없음을 의미한다 : 나는 하나 개 실패, 제로 오류를 얻고있다. 여기 내 테스트입니다 :
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
내 주문기구 : 나는 내 기능 시험의 설정 방법을 변경하는 경우, 지금
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
:
one:
name: Dave Thomas
address: MyText
email: [email protected]
pay_type: Check
내 주문 번호는 컨트롤러를 만들 :
@order = Order.create(orders(:one))
대신 o F :
는@order = orders(:one)
실패는 사라지지만 나는 약 8 이러한 오류를 얻을 :
NoMethodError: undefined method `stringify_keys' for #<Order:0x007f8c62dbb960>
누구도 날이 기능 테스트를 해결하는 데 도움 수 있다면, 내가 이상의 감사하겠습니다. 모든 입력을 환영합니다.
어쩌면 권한 부여 실패하고 순서가 당신의 POST 과정에서 생성되지 않는? – jdoe
자동 번역은 어떻게 확인하나요? 나는 그것을 봤지만 나는 그것을 발견 할 수 없다. – flyingarmadillo
사용자가 로그인했는지 확인하기 위해 일부 before_filter를 만들었습니까? 어쩌면 당신의'create' 액션이 전혀 호출되지 않았을까요? – jdoe