ruby-on-rails - tests - rspec rails 5
¿Cómo "anida" o "grupo" Test:: Pruebas unitarias? (4)
Debería https://github.com/thoughtbot/shoulda aunque parece que ahora han convertido el código relacionado con el contexto en una gema separada: https://github.com/thoughtbot/shoulda-context
RSpec tiene:
describe "the user" do
before(:each) do
@user = Factory :user
end
it "should have access" do
@user.should ...
end
end
¿Cómo agruparías las pruebas así con Test :: Unit? Por ejemplo, en mi prueba de controlador, quiero probar el controlador cuando un usuario ha iniciado sesión y cuando nadie ha iniciado sesión.
Puedes lograr algo similar a través de las clases. Probablemente alguien dirá que esto es horrible, pero le permite separar las pruebas dentro de un archivo:
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
Utilizando https://github.com/thoughtbot/shoulda-context :
En tu Gemfile:
gem ''shoulda-context''
Y en sus archivos de prueba puede hacer cosas como (note que should
lugar de 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
Test::Unit
, que yo sepa, no admite contextos de prueba. Sin embargo, el contest
gemas agrega soporte para los bloques de contexto.