Я пытался выяснить, как анализировать примеры схемы сценария как (пользовательский) объект без явного использования в имени шага.
Scenario Outline: Customer makes an appointment
Given The user enters details on the page
When The user submits the page
Then The appointment details are shown.
Examples:
| Reason | Firstname | Lastname | Email |
| A | John | Doe | [email protected] |
| B | Jane | Doe | [email protected] |
Теперь я пытаюсь выяснить, как анализировать строку примера как настраиваемый объект Appointment.
Я смотрел CreateInstance с таблицей, но, похоже, это не работает.
[Given(@"The user enters details on the page")]
public void EnterDetails(Table table)
{
var appointment = table.CreateInstance<Appointment>();
driver.FindElement(By.Id("Firstname")).SendKeys(appointment.Firstname);
}
Ошибка, которую я получаю при запуске этого
Message: TechTalk.SpecFlow.BindingException : Parameter count mismatch! The binding method EnterDetails(Table)' should have 0 parameters
Это класс назначения
public class Appointment
{
public AppointmentReason Reason { get; set; }
public string Firstnam { get; set; }
public string Lastname { get; set; }
public string Email { get; set; }
}
Кто может указать мне правильное направление, как анализировать строки примера как объекты назначения?
Вы не передаете какие-либо аргументы функции Given, поэтому она выдает исключение. Вы можете передать таблицу следующим образом:
Scenario Outline: Customer makes an appointment
Given The user enters details on the page
| Reason | Firstname | Lastname | Email |
| <Reason> | <Firstname> | <Lastname> | <Email> |
When The user submits the page
Then The appointment details are shown.
Examples:
| Reason | Firstname | Lastname | Email |
| A | John | Doe | [email protected] |
| B | Jane | Doe | [email protected] |
Угловые скобки внутри данного шага являются параметрами. В этом случае помещается в таблицу. Аргументы взяты из таблицы в примерах, потому что вы используете схему сценария.