Search

'리스트박스'에 해당되는 글 1건

  1. 2011.11.15 코딩된 UI 테스트 에 커스텀 어설션 추가하기.

코딩된 UI 테스트 에 커스텀 어설션 추가하기.

Visual Studio 2010 2011. 11. 15. 09:00 Posted by 알 수 없는 사용자
코딩된 UI 테스트를 하려고 하다 보면, '코딩된 UI 테스트 빌더'를 사용하게 됩니다.


그런데 코딩된 UI 테스트 빌더를 사용하다 보면, 어설션을 추가할 수 있는 속성의 수가 매우 제한 적인 것을 알 수 있습니다. 예를 들어서, WPF의 리스트 박스에 항목이 몇 개 있는지를 나타내는 Count와 같은 속성에 어설션을 추가하고 싶은데, 그런 속성을 코딩된 UI 테스트 빌더를 사용하면 찾을 수가 없는 것이죠.


이럴 때는 코드를 통해서 어설션을 추가해야 합니다. 그래서 다음과 같이 UIMap.Designer.cs에 어설션을 추가합니다.


그리고 테스트를 실행하면, 다음과 같이 테스트가 통과하게 되죠.


하지만, 코딩된 UI 테스트 빌더를 이용해서 새 테스트를 추가하거나, 편집을 수행하는 순간 UIMap.Designer.cs에 추가한 코드는 날아가 버립니다. 이 때문에 UIMap클래스는 partial 클래스로 선언이 되어 있습니다. 디자이너가 생성하는 코드는 UIMap.Designer.cs에, 그리고 코딩된 UI 테스트 빌더를 사용해서 추가하기 힘든 코드는 UIMap.cs에 직접 추가하게 되는 것이죠. 그렇다면 위 테스트는 UIMap.cs에 다음과 같이 코드를 추가하면 간단하게 해결 됩니다.

public partial class UIMap
{
    /// <summary>
    /// 리스트 박스의 항목 개수를 테스트하는 메서드
    /// </summary>
    public void CheckListItemCount()
    {
        int expectedCount = 3;
        int actualCount = this.UIMainWindowWindow.UIMyListBoxList.Items.Count;
        Assert.AreEqual(expectedCount, actualCount);
    }
}

그리고 테스트 메서드에서 CheckListItemCount를 호출하도록 코드를 추가해주면 되는 것이죠.

[TestMethod]
public void CodedUITestMethod1()
{
    // 이 테스트의 코드를 생성하려면 바로 가기 메뉴에서 "코딩된 UI 테스트에 대한 코드 생성"을 선택한 다음 메뉴 항목 중 하나를 선택하십시오.
    // 생성된 코드에 대한 자세한 내용은 http://go.microsoft.com/fwlink/?LinkId=179463을 참조하십시오.
 
    this.UIMap.SelectionTest();
 
    this.UIMap.CheckListItemCount();
}

그러면, 의도 했던 테스트가 제대로 추가 되는 것을 볼 수 있습니다.

정말 오랜만에 썼는데, 쓰고 나니 별 내용이 없는 포스트 네요 ㅠ_ㅠ;; 다음에 또 찾아 뵙겠습니다.

ps.
예제 코드를 첨부해드립니다. 예제는 Visual Studio 2010에서 작성했습니다.