Проверка сообщения об ошибке на нескольких языках - PullRequest
0 голосов
/ 28 ноября 2018

Я пишу отрицательные тесты для проверки содержания сообщения об ошибке, показанного пользователю.В приложении два языка: английский и немецкий.Тест работает, но код для проверки каждого языка выглядит следующим образом:

//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;
                    }
                }

Как видите, код для проверки заголовка модального диалога на обоих языках слишком велик, и будут отрицательные тестыс еще большим количеством сообщений об ошибках для проверки на обоих языках.

Есть ли способ как-то изменить этот код и сделать его проще или чище?Могу ли я создать некоторый вспомогательный метод, который просто принимает текущий язык в качестве параметра, сообщения и ожидаемого сообщения и просто возвращает истину или ложь?

1 Ответ

0 голосов
/ 10 декабря 2018

Здесь вы должны следовать следующему подходу

  1. Хранить несколько файлов ресурсов для разных языков, имеющих данные утверждения, например ModuleUnitTestAssertions.en.resx, ModuleUnitTestAssertions.de.resx и т. Д.
  2. В зависимости от текущего языка (установленного в методе настройки теста) выберите файл ресурсов
  3. Замените строки подтверждения значениями из файлов resx

Используя вышеуказанный подход, выне потребуются переключатели, и он будет работать для всех языков без каких-либо изменений кода.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...