Разработка через тестирование: как мне не повторить себя в верхней части тестов? - PullRequest
0 голосов
/ 26 июня 2011

У меня есть этот файл в качестве отправной точки

require 'spec_helper'

describe PagesController do
  render_views  
  describe "GET 'home'" do
    it "should be successful" do
      @request.env["HTTP_AUTHORIZATION"] = "Basic " + Base64::encode64("username:password")
      get 'home'
      response.should be_success
    end

    it "Should have the proper title" do
      @request.env["HTTP_AUTHORIZATION"] = "Basic " + Base64::encode64("username:password")
      get 'home'
      response.should have_selector( "title",
      :content => "Slacklog")
    end
  end

  describe "GET 'contact'" do
    it "should be successful" do
      @request.env["HTTP_AUTHORIZATION"] = "Basic " + Base64::encode64("username:password")
      get 'contact'
      response.should be_success
    end
  end

  describe "GET 'about'" do
    it "should be successful" do
      @request.env["HTTP_AUTHORIZATION"] = "Basic " + Base64::encode64("username:password")
      get 'about'
      response.should be_success
    end
  end

end

Но вы заметили линию

      @request.env["HTTP_AUTHORIZATION"] = "Basic " + Base64::encode64("username:password")

Это моя базовая HTTP-аутентификация, и она мне нужна во всех моих тестах, но я считаю, что должен быть лучший способ добавить это до всех моих тестов, затем скопировать и вставить поверх всех тестов

1 Ответ

1 голос
/ 26 июня 2011
describe PagesController do

  before(:each) do
    @request.env["HTTP_AUTHORIZATION"] = "Basic " + Base64::encode64("username:password")
  end

  ...

end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...