최선의 코딩된 UI 테스트 방법
이 항목에서는 코딩된 UI 테스트를 개발하는 데 도움이 되는 최선의 구현 방법을 소개합니다.
요구 사항
- Visual Studio Ultimate, Visual Studio Premium
최선의 구현 방법
코딩된 UI 테스트를 유연성 있게 만들려면 다음 지침을 따르는 것이 좋습니다.
가능하면 항상 코딩된 UI 테스트 빌더를 사용하는 것이 좋습니다.
UIMap.designer.cs 파일을 직접 편집하지 마십시오.그러면 파일에 대한 변경 내용을 덮어씁니다.
테스트를 일련의 기록된 메서드로 만듭니다.메서드를 기록하는 방법에 대한 자세한 내용은 코딩된 UI 테스트 생성을 참조하십시오.
기록된 각 메서드는 단일 페이지, 폼 또는 대화 상자에서 작동해야 합니다.각각의 새 페이지, 폼 또는 대화 상자에 대한 새 테스트 메서드를 만듭니다.
메서드를 만들 때 기본 이름 대신 의미 있는 메서드 이름을 사용합니다.의미 있는 이름을 사용하면 메서드의 용도를 쉽게 식별할 수 있습니다.
가능하면 기록된 각 메서드의 작업 수를 10개 미만으로 제한하는 것이 좋습니다.이러한 모듈 방식을 사용하면 UI가 변경되는 경우 메서드를 쉽게 바꿀 수 있습니다.
코딩된 UI 테스트 빌더를 사용하여 각 어설션을 만듭니다. 그러면 어설션 메서드가 자동으로 UIMap.Designer.cs 파일에 추가됩니다.
UI(사용자 인터페이스)가 변경되는 경우 테스트 메서드 또는 어설션 메서드를 다시 기록하거나 영향을 받는 기존 테스트 메서드 섹션을 다시 기록합니다.
테스트 대상 응용 프로그램의 각 모듈에 대한 별도의 UIMap 파일을 만듭니다.자세한 내용은 여러 UI 맵이 포함된 대형 응용 프로그램 테스트을 참조하십시오.
테스트 대상 응용 프로그램에서 UI 컨트롤을 만들 때 의미 있는 이름을 사용합니다.이렇게 하면 자동으로 생성된 컨트롤 이름을 사용할 때보다 컨트롤을 더 쉽게 식별하고 활용도를 높일 수 있습니다.
API로 코딩하여 어설션을 만드는 경우 UIMap.cs 파일에 있는 UIMap 클래스 부분에 각 어설션에 대한 메서드를 만듭니다.테스트 메서드에서 이 메서드를 호출하여 어설션을 실행합니다.
API로 직접 코딩하는 경우 UIMap.Designer.cs 파일에 생성된 클래스의 속성과 메서드를 가능한 한 많이 코드에 사용합니다.이러한 클래스를 사용하면 작업이 더 간단해지고 신뢰도와 생산성을 높일 수 있습니다.
코딩된 UI 테스트는 사용자 인터페이스의 다양한 변경 내용에 자동으로 맞춰집니다.예를 들어 UI 요소의 위치나 색을 변경하더라도 대부분의 경우 코딩된 UI 테스트에서 올바른 요소를 찾습니다.
테스트가 실행되는 동안 UI 컨트롤은 코딩된 UI 테스트 빌더를 통해 UIMap.Designer.cs 파일에 만든 정의의 각 컨트롤 클래스에 적용되는 검색 속성 집합을 사용하여 테스트 프레임워크에 의해 위치가 정해집니다.검색 속성에는 컨트롤의 FriendlyName, Name 및 ControlType 속성과 같이 컨트롤을 식별하는 데 사용할 수 있는 속성 이름과 속성 값의 이름-값 쌍이 포함되어 있습니다.검색 속성이 변경되지 않았으면 코딩된 UI 테스트를 통해 UI에서 컨트롤을 잘 찾을 수 있습니다.검색 속성이 변경된 경우에는 코딩된 UI 테스트에 스마트 일치 알고리즘이라고 하는 경험적 접근 방법이 적용되어 있어서 UI에서 컨트롤과 창을 찾을 수 있습니다.UI가 변경된 경우 이전에 식별된 요소의 검색 속성을 수정하여 찾도록 할 수 있습니다.
사용자 인터페이스 변경 시 필요한 작업
개발을 진행하다 보면 사용자 인터페이스를 변경해야 할 상황이 드물지 않게 발생합니다.다음 방법을 참조하면 이러한 변경 작업에 드는 노력을 줄이는 데 도움이 됩니다.
이 컨트롤을 참조하는 기록된 메서드를 찾은 다음 코딩된 UI 테스트 빌더를 사용하여 이 메서드에 대한 작업을 다시 기록합니다.메서드에 동일한 이름을 사용하여 기존 작업을 덮어쓸 수 있습니다.
컨트롤에 더 이상 유효하지 않은 어설션이 있으면 다음과 같이 합니다.
어설션이 포함된 메서드를 삭제합니다.
테스트 메서드에서 이 메서드에 대한 호출을 제거합니다.
십자 모양 단추를 UI 컨트롤 위로 끌어다 놓아 새 어설션을 추가하고 UI 맵을 연 다음 새 어설션을 추가합니다.
코딩된 UI 테스트를 기록하는 방법에 대한 자세한 내용은 UI 자동화를 사용하여 코드 확인을 참조하십시오.
테스트를 계속하려면 백그라운드 프로세스를 완료해야 하는 경우 수행할 작업
다음 UI 작업을 계속하기 위해 프로세스가 완료될 때까지 기다려야 할 수 있습니다.이를 위해 다음 샘플과 같이 테스트가 계속되기 전에 WaitForReadyLevel을 사용하여 기다릴 수 있습니다.
// Set the playback to wait for all threads to finish
Playback.PlaybackSettings.WaitForReadyLevel = WaitForReadyLevel.AllThreads;
// Press the submit button
this.UIMap.ClickSubmit();
// Reset the playback to wait only for the UI thread to finish
Playback.PlaybackSettings.WaitForReadyLevel = WaitForReadyLevel.UIThreadOnly;
참고 항목
참조
Microsoft.VisualStudio.TestTools.UITesting
개념
코딩된 UI 테스트 및 작업 기록에 지원되는 구성 및 플랫폼