Я пишу отрицательные тесты для проверки содержания сообщения об ошибке, показанного пользователю.В приложении два языка: английский и немецкий.Тест работает, но код для проверки каждого языка выглядит следующим образом:
//Check if modal dialog with error message is shown
string currentLanguage = loginPage.currentLanguage.Text;
string modalMessage = loginPage.errorMsgModalDialogTitle.Text;
try
{
Assert.True(!string.IsNullOrEmpty(modalMessage));
test.Log(Status.Pass, "Office365 login has failed and modal dialog was shown to user!");
test.Log(Status.Info, "Checking modal dialog error message...");
switch (currentLanguage)
{
//Current language is english
case "German":
try
{
Assert.AreEqual(modalMessage, "User does not exist!");
test.Log(Status.Pass, "Modal dialog message title verified! Message title: '" + modalMessage + "'");
}
catch(AssertionException)
{
test.Log(Status.Fail, "Modal dialog did not contain message title: '" + modalMessage + "'");
}
break;
//Current language is german
case "English":
try
{
Assert.AreEqual(modalMessage, "Benutzer existiert nicht!");
test.Log(Status.Pass, "Modal dialog message title and text verified! Message title: '" + modalMessage + "'");
}
catch (AssertionException)
{
test.Log(Status.Fail, "Modal dialog did not contain message title: '" + modalMessage + "'");
}
break;
}
}
Как видите, код для проверки заголовка модального диалога на обоих языках слишком велик, и будут отрицательные тестыс еще большим количеством сообщений об ошибках для проверки на обоих языках.
Есть ли способ как-то изменить этот код и сделать его проще или чище?Могу ли я создать некоторый вспомогательный метод, который просто принимает текущий язык в качестве параметра, сообщения и ожидаемого сообщения и просто возвращает истину или ложь?