>

사용자에게 표시되는 오류 메시지의 내용을 확인하기 위해 부정적인 테스트를 작성하고 있습니다. 앱에는 영어와 독일어의 두 가지 언어가 있습니다. 테스트는 작동하지만 각 언어를 확인하는 코드는 다음과 같습니다.

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

알다시피, 두 언어에서 모달 대화 상자의 제목을 확인하는 코드가 너무 커서 두 언어로 확인하기 위해 더 많은 오류 메시지가있는 부정적인 테스트가있을 것입니다.

어떻게이 코드를 굴절 시켜서 더 단순하거나 깔끔하게 만들 수있는 방법이 있습니까? 현재 언어를 매개 변수, 메시지 및 예상 메시지로 사용하고 true 또는 false를 반환하는 도우미 메서드를 만들 수 있습니까?

  • 답변 # 1

    여기, 아래 접근 방식을 따라야합니다

    <올> , 예를 들어, 주장 데이터를 갖는 ModuleUnitTestAssertions.en.resx, ModuleUnitTestAssertions.de.resx 등을 다른 언어에 대해 여러 리소스 파일을 보관하십시오.

    현재 언어 (테스트 설정 방법에서 설정)에 따라 리소스 파일을 선택하십시오.

    어설 션 문자열을 resx 파일의 값으로 교체

    위의 접근 방식을 사용하면 스위치 케이스가 필요하지 않으며 코드 변경없이 모든 언어에서 작동합니다.

관련 자료

  • 이전 parsing - br 태그 만 닫는 파이썬 아름다운 수프 구문 분석 문자열
  • 다음 etl - postgresql - 데이터를 추가하는 방법?