Если у меня есть функция, которая выглядит так:
Feature: My feature
Scenario Outline: My scenario outline.
Given foo
When bar
Then I get the status code "<Status Code>".
Examples:
| StatusCode |
| 200 |
и такое определение шага:
@Then("I get the status code {int}.")
Cucumber жалуется и говорит, что шаг не определен, поскольку ожидается, что тип будет {string}. Есть ли способ указать тип объекта или таблицы примера? Я изучил TypeRegistryConfiguration, но не могу понять, как заставить его работать с файлами функций.
Или \"{int}\" если кавычки важны.
@M.P.Korstanje, вот и все, спасибо! Я не осознавал, что добавление кавычек приведет к преобразованию строки в строку. Если вы хотите добавить это в качестве ответа, я приму это.
Это не так. Как выглядит ваше определение шага?
public void i_get_the_status_code(Integer expectedStatusCode). Если я верну кавычки обратно, он перестанет работать с той же ошибкой, так что проблема действительно в них.
Ах. это не имеет ничего общего с кастингом.
Кроме того, зачем использовать класс-оболочку? Это всего лишь код состояния, который вполне можно было бы охватить использованием int, верно?




Есть ли опечатка в файле объекта? Кажется, проблема с кавычками.
Then I get the status code "<Status Code">
Кроме того, я надеюсь, что вы используете «Контур сценария» вместо просто «Сценарий». Если мы передаем значения в качестве аргументов, нам следует использовать структуру сценария.
Редактировать1: Спасибо за это, @M.P. Корстанье. Не знал об этой функции.
Еще одна вещь, которая может быть проблемой, заключается в следующем. Несоответствие определения шага. Убедитесь, что подпись метода определения шага точно соответствует шагу в вашем файле объектов. Надеюсь, это исправит ситуацию, поскольку я не могу думать ни о чем другом.
К вашему сведению: Схема сценария и сценарий теперь являются синонимами. Если вы используете последнюю версию Cucumber.
Хороший улов, я не заметил этой опечатки. Я исправил это в вопросе и расширил пример.
Удаление кавычек вокруг <StatusCode>, как предложил @M.P.Korstanje, исправило проблему. После этого Cucumber распознал его как целое число и взял определение шага.
Используйте
<Status Code>, а не"<Status Code>".