Мне интересно, существует ли эта функция в RSpec.Кажется, я не могу найти никаких результатов, глядя на это.
Что я хотел бы сделать, это то, что можно сделать в тестах Jest, например:
// This is a Jest expectation
expect(foo).toMatchInlineSnapshot()
// On the first execution of this code, the value of foo will fill in the expectation and result in something like this
expect(foo).toMatchInlineSnapshot('bar')
I 'я бы хотел сделать это с помощью тестов RSpec.
# Here's an RSpec expectation
expect(foo).to eq({ bar: 25 })
Скажите, что я внесу изменение в свой код, в результате чего foo [: bar] будет иметь другое значение, но я не знаюкаким будет это значение.
В настоящее время мне нужно повторно запустить свои тесты и увидеть ошибку, говорящую что-то вроде
Failure/Error: expect(foo).to eq({ bar: 25 })
expected: { bar: 25 }
got: { bar: 100 }
После этого мне нужно вручную обновить мойожидание для того, чтобы оно прошло.
В любом случае, нужно ли RSpec автоматически обновлять ожидаемое значение?
Например:
expect(foo).to eq({ bar: 25 }, {update: true})
изменит код послевыполнение теста для соответствия правильному значению, в результате чего следующий код заменит вышеприведенное ожидание:
expect(foo).to eq({ bar: 100 })
Существует ли какой-либо способ сделать это?Может быть, есть какая-нибудь команда, которую я могу запустить с RSpec?
spec UPDATE_EXPECTS=1
Я видел библиотеки, которые могут совпадать на основе снимков, но не смог найти ничего, что привело бы к тому, что ожидаемый ответ появлялся в строке.
Спасибо за помощь