unit tests test rails how ruby-on-rails ruby testunit

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.