我正在尝试编写测试狮身人面像搜索的测试。我需要用户将一些参数传递给api,并根据params shpinx执行搜索。
我有以下3个测试
在test_helper.rb中我已经设置了所有内容
require 'factory_girl'
require 'thinking_sphinx/test'
ThinkingSphinx::Test.init
.........
class ActiveSupport::TestCase
self.use_transactional_fixtures = false
self.use_instantiated_fixtures = false
fixtures :all
我的测试
test "should 1st test" do
ThinkingSphinx::Test.start
# uthenticatoin and creating records in databese with Factory Girl
ThinkingSphinx::Test.index
get "some/path", {params}, @headers
assert_response :success
end
test "should 2nd test" do
# uthenticatoin and creating records in databese with Factory Girl
ThinkingSphinx::Test.index
get "some/path", {params}, @headers
assert_response :success
# other assertions
end
test "should 3rd test" do
# uthenticatoin and creating records in databese with Factory Girl
ThinkingSphinx::Test.index
get "some/path", {params}, @headers
assert_response :success
# other assertions
ThinkingSphinx::Test.stop
end
我不知道为什么我的测试不按顺序运行,而是第2次,第3次,第1次 我怎样才能使测试按顺序运行。我正在使用基本的Rails Test :: Unit。 由于测试细节,订单对我很重要。 感谢。
答案 0 :(得分:1)
您的测试永远不应该以有序的方式编写。我明白为什么你想要这个订单,并且有办法解决这个问题。试试这个:
setup do
ThinkingSphinx::Test.start
end
# Your tests
teardown do
ThinkingSphinx::Test.stop
end
这使得在每个测试ThinkingSphinx::Test
开始之前,并在每个测试之后停止。这是设置它的理想方法,所以现在运行测试的顺序并不重要。
但是,如果ThinkingSphinx::Test.start
是一个漫长的过程,您可能不希望它为每个测试运行。我不知道TestUnit
是否允许您在整个套件或一组测试之前运行设置,但在RSpec中您可以做到这一点,这样可以更好地为您服务。