Я новичок в specflow, хочу помочь со сценарием specflow, как показано ниже.
Scenario Outline: Error messages validation for maximum allowed term rule
Given a <product>
When term exceeds the max allowed term
Then this <errormessage> is displayed
Examples:
| product | errormessage |
| ProductA | This is an error message 1 |
| ProductB | This is an error message 2 |
| ProductC | This is an error message 3 |
Для определения последнего шага "* Затем отображается это сообщение об ошибке ", я хочу повторно использовать существующий метод привязки
« Затем отображается это (. ) »
Этот существующий метод привязки принимает строку в качестве параметра (ожидаемое сообщение об ошибке) и сопоставляет ее с фактическим сообщением, выбранным из тестируемого приложения.
Но когда я использую метод как есть - он не может передать содержимое сообщения об ошибке в виде массива строк. Может ли кто-нибудь помочь мне понять, что мне нужно сделать, чтобы это работало?
Пример метода привязки ниже. Шаг Затем это отображается не в состоянии распознать эту привязку, он просит меня написать другой метод.
[Then(@"this ""(.*)"" is displayed")]
public void ThenErrorMessageIsDisplayed(string errorMessage)
{
var msg = uServiceSupport.GetMessages(responseData);
var found = new JObject();
// due to multiple error and warning messages
foreach (var elem in msg)
{
if (elem["message"].ToString().Contains(errorMessage))
found = (JObject)elem;
}
try
{
Assert.IsTrue(found.HasValues, "Check if response has warning/error message");
Assert.AreEqual(errorMessage, found["message"].ToString(), "Check if the error message is {0}", errorMessage);
}
catch (AssertionException)
{
Helper.LogInfo(string.Format("Response:\n {0}", JObject.Parse(responseData)));
throw;
}
}