2014-10-01 7 views
1

저는 기존 소프트웨어에 대한 단위 테스트를 처음으로 작성하고 있으며, 상사가 단위 테스트 개요/계획을 작성하도록 요청했습니다.C# Windows Form Unit Testing

매우 중상 인 C# 개발자이므로이 앱의 테스트 계획을 만드는 방법을 찾으려고합니다.

내 솔루션의 각 프로젝트를 나타내는 여러 개의 시트가있는 Excel 문서를 설정했습니다. 특히 void 및 bool 메서드로 작업 할 때 가능한 모든 결과와 입력을 문서화하는 방법에 대해 혼란스러워합니다. 또는 전달되는 값이 많은 메소드로 모델을 전달할 때

다음 두 가지 방법에 대해 합격, 불합격, 예상 결과를 문서화하려면 어떻게해야합니까? 기본 개요는 특정 문서가 아니라 전부입니다. :

public static void ManualEntryToggleStateChanged(bool isChecked) 
     { 
      /* check for manual entry 
      * if manual entry information can be entered 
      * focus user to reg no 
      */ 
      moTextboxRegName.ReadOnly = !isChecked; 

      moTextboxRegHerd.ReadOnly = !isChecked; 

      if (isChecked) 
      { 
       moTextboxRegHerd.Text = ""; 
       moTextboxRegName.Text = ""; 
       moDropDownListBreed.Focus(); 
      } 

     } 
    public static void LoadAllLabs(nsHacBusSrv.SortMode Sort = nsHacBusSrv.SortMode.NotSorted) 
    { 
     try 
     { 
      moDropDownListLab.DataSource 
       = moBusinessServices.GetAllLabs(Sort); 

      moDropDownListLab.DisplayMember = "Name"; 

      moDropDownListLab.ValueMember = "Idn"; 

      nsTelWinUi.RadListDataItem oDefaultItem 
       = new nsTelWinUi.RadListDataItem("", ""); 

      moDropDownListLab.Items.Add(oDefaultItem); 

      moDropDownListLab.SelectedValue = ""; 
     } 
     catch (System.Exception ex) 
     { 
      Debug.Fail(ex.Message); 

      throw; 
     } 
    } 
+0

유사한 문서/작업 샘플을 요청할 경우 작업 성공 가능성이 높습니다. –

+0

이름 공간의 별칭은 재미있는 규칙입니다. 전에는 본 적이 없어요. –

답변

4

왜 Excel을 사용합니까? 내가 너라면 솔루션에 테스트 프로젝트를 추가 할 것이다. 각 솔루션으로 가서 각 방법에 대한 단위 테스트를 추가하십시오. Visual Studio에 맞는 플러그인이 있으면 모든 테스트 사례 스텁이 생성됩니다.

테스트하는 방법은 당 예술이지만 대부분 과학입니다. 이 모든 것들은이 모든 것들을 둘러싼 다. "Min, Min-1, Min + 1, Max, Max-1, Max + 1 .. 다음과 같은 조건을 테스트 할 경우 모든 매개 변수가 철저히 테스트됩니다. 문자열을 볼 때 고려해야 할 두 가지 특별한 경우가 있습니다 .empty 및 null. 이것은 모든 것을 철저히 테스트하는 8 가지 순열을 제공하지만, 테스트 할 대상에 따라이 수의 테스트를 줄일 수 있습니다. 예를 들어 bool 값에는 2 개의 순열이 있습니다. 그러나 문자열 패밀리는 최소한 7 회의 순열을 가지고 있습니다.

테스트의 아트 부분은 패턴을 찾아 내고 실제로 얼마나 많은 perumatation이 필요한지를 결정합니다. 예를 들어 두 개의 문자열 매개 변수는 모든 가능성을 테스트하기 위해 7! -1 순열을 취합니다. 다른 테스트를 통해 모든 주를 얻을 수 있지만, 코드를 면밀히 살펴보면이 숫자도 크게 줄일 수 있습니다.

좋은 테스트의 열쇠는 돌을 아무 것도 남기지 않고 아무것도 가정하지 않는 것입니다. 코드가 얼마나 강건하고 개발자가 아닌지 테스트를 통해 알려주십시오.

+1

이 답변을 제공 해주셔서 감사합니다. 매우 도움이되었습니다. – Mark

1

당신은 당신이 moTextboxRegName 및 moDropDownListLab 객체에 지정된 속성을 주장 테스트를 작성할 수 있습니다. 이것은 당신이 당신의 API를 통해 그 객체들을 드러내는 방법을 가지고 있다고 가정합니다. 단위 테스트를 할 때는 코드를 테스트 할 수 있도록 테스트를 염두에두고 코드를 작성해야합니다.