2016-08-18 3 views
0

클래스 라이브러리로 단위 테스팅을하고 있고, 8 문자 미만의 패스워드를 수락 할 수 없는지 확인하는 것과 같은 시나리오를 테스트 할 필요가있는 메소드를 테스트하는 방법에 대해 고민하고있다. 패스워드가 맞는지 확인한다. 8 자 이상의 문자를 수락하고 앞면에 공백이있는 암호를 받아 들일 수 없는지 확인하십시오.유닛 테스팅 클래스

아래 코드는 클래스 라이브러리에 있습니다.

public class PasswordChecker 
{ 
    public bool CheckPassword(string pwd) 
{ 
    if (pwd.Length >= 8 && !pwd.StartsWith("")) 
    { 
     return true; 
    } 
    else 
    { 
     return false; 
    } 
} 
} 

아래 코드는 테스트 프로젝트에서 가져온 것입니다.

using System; 
using Microsoft.VisualStudio.TestTools.UnitTesting; 
using 12kiajunPA03; 

namespace PasswordCheckerTest 
{ 
[TestClass] 
public class PasswordCheckerTest 
{ 
    [TestMethod] 
    public void Checkpassword() 
    { 
     string pwd = "1234qa1"; 

     Checkpassword password = new Checkpassword("John", pwd); 

     try 
     { 

     } 
     catch 
     { 

     } 
    } 
} 

}

답변

2

나는 다음과 같이 보일 것입니다 상상 : 같은 생각을 사용하여

using System; 
using Microsoft.VisualStudio.TestTools.UnitTesting; 
using 12kiajunPA03; 

namespace PasswordCheckerTest 
{ 
    [TestClass] 
    public class PasswordCheckerTest 
    { 
     [TestMethod] 
     public void Checkpassword8CharsLong() 
     { 
      string validPassword = "12345678"; 
      string invalidPassword = "abc"; 

      PasswordChecker checker = new PasswordChecker(); 

      Assert.IsTrue(checker.CheckPassword(validPassword)); 
      Assert.IsFalse(checker.CheckPassword(invalidPassword)); 
     } 
    } 
} 

, 당신은 암호를 충족해야 다른 기준을 확인 추가 테스트를 작성할 수 있습니다.

+0

테스트 케이스를 사용하거나 둘 이상의 테스트를 사용하려고합니다. 첫 번째 검사가 실패하면 두 번째 검사가 실행되어 버그를 숨길 수 없습니다. – LukeW

+0

정말입니까? 나는이 테스트 프레임 워크에 익숙하지 않지만 다른 프레임 워크에서의 Assert에 대한 경험에서 이전 테스트가 실패하더라도 테스트를 계속한다. – TW80000

+0

프레임 워크를 보지 못했습니다. MSTest에 잘못 될 수는 있지만 테스트를 위해 XUnit을 사용합니다. – LukeW