что делает ключевое слово "it" в RSpec? - PullRequest
16 голосов
/ 16 января 2012

Я следую руководству rails3tutorial и не понимаю значения ключевого слова "it" при выполнении следующего тестирования:

require 'spec_helper'

describe UsersController do
  render_views

  describe "GET 'new'" do
    it "should be successful" do
      get 'new'
      response.should be_success
    end

    it "should have the right title" do
      get 'new'
      response.should have_selector("title", :content => "Sign up")
    end
  end
end

фрагмент кода происходит из: http://ruby.railstutorial.org/chapters/filling-in-the-layout#topлистинг 5.26

Ответы [ 5 ]

18 голосов
/ 16 января 2012

Что я думаю, что другие ответы могли бы сделать более явными, и что может поначалу смущать вас, так это то, что it нарушает большинство обычных соглашений для именования методов (например, ничего о методе не описывает то, что он делает) чтобы код целиком читался как некое предложение.

Таким образом, вместо того, чтобы просто создавать набор тестов, библиотека пытается побудить вас описать ваше приложение с помощью тестов способом, который напоминает удобочитаемую спецификацию.

14 голосов
/ 16 января 2012

Это не ключевое слово Ruby, это часть Rspec framework .

it содержит примеры кода, иллюстрирующие определяемый аспект поведения.Он состоит из двух основных частей: строки описания и примера кода в блоке do / end.

5 голосов
/ 16 января 2012

Это не ключевое слово.Это просто метод, предоставленный RSpec , используемый для описания образцов спецификации.См. документы для дальнейшего объяснения.

2 голосов
/ 21 января 2013

В общем смысле модульного тестирования, мы используем описание для описания поведения класса :

describe Hash do

end

Тесты пишутся с использованием блока it .Вот пример того, как вы можете написать спецификацию для класса Hash:

describe Hash do
  it "should return a blank instance" do
    Hash.new.should == {}
  end
end

Для получения дополнительной помощи используйте его

http://blog.teamtreehouse.com/an-introduction-to-rspec

0 голосов
/ 17 января 2012

Как уже говорили другие, it не является ключевым словом.

При этом многие слова, которые представляются ключевыми словами, не являются ключевыми словами.Например, puts выглядит как ключевое слово, но это просто метод в модуле Kernel.

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