Подтвердить что ты не робот

Как вы тестируете "гнездо" или "групповой" тест:: Единичные тесты?

RSpec имеет:

describe "the user" do
  before(:each) do
    @user = Factory :user
  end

  it "should have access" do
    @user.should ...
  end
end

Как бы вы группировали тесты с помощью Test:: Unit? Например, в моем тесте контроллера я хочу протестировать контроллер, когда пользователь выполнил вход и когда никто не был подписан.

4b9b3361

Ответ 1

Test::Unit, насколько мне известно, не поддерживает тестовые контексты. Однако gem contest добавляет поддержку блоков контекста.

Ответ 2

Вы можете добиться чего-то подобного через классы. Вероятно, кто-то скажет, что это ужасно, но это позволяет вам разделить тесты в одном файле:

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

Ответ 4

Используя shoulda-context:

В вашем 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