Составление спичек в Rspec - PullRequest
       1

Составление спичек в Rspec

0 голосов
/ 24 сентября 2018

Rspec поддерживает составление совпадений.Список составляющих сопоставлений, которые он предоставляет, таков:

all(matcher)
include(matcher, matcher)
start_with(matcher)
end_with(matcher)
contain_exactly(matcher, matcher, matcher)
match(matcher)
change {}.from(matcher).to(matcher)
change {}.by(matcher)

Все сопоставляющие составления интуитивно понятны.Вы можете передать сопоставления сопоставляющему сопоставителю, и переданные сопоставители должны вернуть значение true, чтобы ожидание было истинным:

expect(@items).to all(be_visible & be_in_stock)

Но я не уверен насчет составных сопоставителей start_with и end_with.Посмотрите на этот пример:

fruits = ['apple', 'banana', 'cherry']
expect(fruits).to start_with( start_with('a') )

Что делает внешний и внутренний start_with в этом примере?

1 Ответ

0 голосов
/ 25 сентября 2018

В вашем примере вы проверяете, что первый элемент fruits начинается с символа a.Таким образом, внешний starts_with нацелен на первый элемент массива, а внутренний starts_with нацелен на начало первого элемента.

Ваш пример проходит, но, к примеру, это не удается:

fruits = ['banana', 'apple', 'cherry']
expect(fruits).to start_with( start_with('a') )

Есть несколько примеров в тестах rspec-ожидания массивов, в которых вы хотите проверить, что первый элемент (элементы) начинаются или заканчиваются заданным значением или строкой.Например:

expect([1.01, "food", 3]).to start_with(a_value_within(0.2).of(1), a_string_matching(/foo/))

expect([3, "food", 1.1]).to end_with(a_value_within(0.2).of(1))

Также связано: RSpec sets_with вариант соответствия с использованием регулярных выражений

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