我想解决一个问题,我有我的测试数据库。我目前正在跟随敏捷Web开发4并通读各章。在我发现我的测试数据库持续数据的四分之三的某处,我正试图找出究竟发生了什么。我有一个我试图运行的orders_controller_test.rb文件。为什么Rails无法运行单个rake测试?
当我执行
rake test:controllers
rake test test/controllers/orders_controller_test.rb
rake test
测试执行和数据被保留。我想一次去测试一个测试,并且正在执行此命令来执行此操作:
rake test test/controllers/orders_controller_test.rb name_of_test
如Rails 4指南中所示。这个命令的执行产生这样的:
正如你可以看到它执行的测试,但实际上并没有这样做。没有断言,这令我感到困惑/令人沮丧。我已经提到这篇网页文章,并尝试过其中的方法。 Different ways to run rails tests
为什么这不正确执行。这是非常令人沮丧的,我怀疑这很简单。有人可以帮助确定可能发生的事情吗?帮助将不胜感激。
-----编辑-----------
控制器测试
require 'test_helper'
class OrdersControllerTest < ActionController::TestCase
def setup
@order = orders(:one)
end
def teardown
@order = nil
end
test "should get index" do
get :index
assert_response :success
assert_not_nil assigns(:orders)
end
test "should get new" do
get :new
assert_response :redirect
end
test "should create order" do
assert_difference('Order.count') do
post :create, order: { address: @order.address, email: @order.email, name: @order.name, pay_type: @order.pay_type }
end
assert_redirected_to store_path
end
test "should show order" do
get :show, id: @order
assert_response :success
end
test "should get edit" do
get :edit, id: @order
assert_response :success
end
test "should update order" do
patch :update, id: @order, order: { address: @order.address, email: @order.email, name: @order.name, pay_type: @order.pay_type }
assert_redirected_to order_path(assigns(:order))
end
test "should destroy order" do
assert_difference('Order.count', -1) do
delete :destroy, id: @order
end
assert_redirected_to orders_path
end
test "requires item in cart" do
get :new
assert_redirected_to store_path
assert_equal flash[:notice], 'Your cart is empty'
end
test "should get new order" do
item = LineItem.new
item.build_cart
item.product = products(:ruby)
item.save!
binding.pry
session[:cart_id] = item.cart.id
get :new
binding.pry
assert_response :success
end
end
也许也会显示你的测试。 – engineersmnky 2014-12-02 21:59:44
感谢您的快速回复,我会复制并粘贴它们。他们直接从敏捷Web 4获取 – 2014-12-02 22:01:01