синтаксис для сокращения этой спецификации до одной строки - PullRequest
0 голосов
/ 09 января 2019

Можно ли сократить эту спецификацию до одной строки?

it 'false for incorrect email' do 
  get :check_email, { user: { email: user.email + "abc" } }
  expect(response.body).to be_true
end 

что-то вроде:

  expect(get :check_email, { user: { email: user.email + "abc" } } ...??? ).to be_true

1 Ответ

0 голосов
/ 10 января 2019

Метод get возвращает ответ, как показано Здесь (а также установку переменной экземпляра @response, как показано Здесь , поэтому вы можете использовать response в контрольный пример).

В таком случае вы можете использовать этот факт и сделать однострочную

expect(get(:check_email, { user: { email: user.email + "abc" } }).body).to be_true

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

Таким образом, я бы порекомендовал оставить тест в виде двух строк, поскольку это значительно облегчает понимание того, что тестируется. (Однострочник выглядит так, как будто вы тестируете возврат с get, если в конце пропускаете вызов телу)

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