RSpec的有:你如何「嵌套」或「組」測試::單元測試?
describe "the user" do
before(:each) do
@user = Factory :user
end
it "should have access" do
@user.should ...
end
end
你會如何組測試,如與測試::單位?例如,在我的控制器測試中,我想在用戶登錄時以及沒有人登錄時測試控制器。據我所知,
RSpec的有:你如何「嵌套」或「組」測試::單元測試?
describe "the user" do
before(:each) do
@user = Factory :user
end
it "should have access" do
@user.should ...
end
end
你會如何組測試,如與測試::單位?例如,在我的控制器測試中,我想在用戶登錄時以及沒有人登錄時測試控制器。據我所知,
不支持測試上下文。但是,the gem contest
添加了對上下文塊的支持。
早該https://github.com/thoughtbot/shoulda雖然它看起來像他們現在已經取得了上下文相關的代碼到一個單獨的寶石:https://github.com/thoughtbot/shoulda-context
可以實現通過類類似的東西。也許有人會說,這是可怕的,但它允許你在一個文件中單獨的測試:
class MySuperTest < ActiveSupport::TestCase
test "something general" do
assert true
end
class MyMethodTests < ActiveSupport::TestCase
setup do
@variable = something
end
test "my method" do
assert object.my_method
end
end
end
在你的Gemfile:
gem 'shoulda-context'
並在測試文件,你可以做類似的事情(請注意should
而不是test
:
class UsersControllerTest < ActionDispatch::IntegrationTest
context 'Logged out user' do
should "get current user" do
get api_current_user_url
assert_response :success
assert_equal response.body, "{}"
end
end
end
在試圖挽救某人15分鐘的調試時,競賽寶石已過時,並且不適用於我的Rails 4應用程序。 – AndrewJM 2015-11-02 19:43:15
Gem無法在Rails 5.2上運行,請參閱https://github.com/citrusbyte/contest/issues/9 – Dorian 2017-12-20 17:21:50