nunit 사용 안내서-NUnit Quick Start
29798 단어 nunit 사용 안내서-NUnitQuickStart
NUnit Quick Start 원본 문서:http://www.nunit.org이 인 스 턴 스 는 초기 nunit 버 전에 서 찾 을 수 있 습 니 다.테스트 구동 개발 에 있어 서 좋 은 예 는 아니 지만 nunit 를 사용 하 는 가장 기본 적 인 방법 을 설명 할 수 있 습 니 다.
지금부터 우리 의 예.만약 에 우리 가 은행업 의 응용 프로그램 을 쓰기 시작 하면 우 리 는 기본 적 인 유형 인 Account,Account 는 주로 자금 의 증가,취소 와 이 체 를 책임 집 니 다.다음은 이런 코드 입 니 다.
1 namespace bank 2 { 3 public class Account 4 { 5 private float balance; 6 public void Deposit(float amount) 7 { 8 balance+=amount; 9 }10 11 public void Withdraw(float amount)12 { 13 balance-=amount; 14 }15 16 public void TransferFunds(Account destination, float amount)17 { }18 19 public float Balance20 { 21 get { return balance;} 22 }23 }24 } 테스트 가 필요 한 클래스 인 AccountTest 를 작성 하 겠 습 니 다.첫 번 째 테스트 방법 은 Transfer Funds 입 니 다.
1 namespace bank 2 { 3 using NUnit.Framework; 4 5 [TestFixture] 6 public class AccountTest 7 { 8 [Test] 9 public void TransferFunds()10 {11 Account source = new Account();12 source.Deposit(200.00F);13 Account destination = new Account();14 destination.Deposit(150.00F);15 source.TransferFunds(destination, 100.00F);16 Assert.AreEqual(250.00F, destination.Balance);17 Assert.AreEqual(100.00F, source.Balance);18 }19 }20 } 현재 하 는 첫 번 째 일 은 이 클래스 에[TestFixture]속성 이 있다 는 것 을 설명 하 는 것 입 니 다.이 방법 을 통 해 테스트 코드(이 속성 은 계승 할 수 있 습 니 다)를 표시 합 니 다.이 클래스 는 반드시 Public 클래스 이 고 파생 내 에 제한 이 없습니다.이 클래스 는 당연히 기본 구조 함수 가 있어 야 합 니 다. 이러한 유일한 방법 인 Transfer Funds 는[Test]속성 이 있 습 니 다.그 는 테스트 방법 임 을 보 여 줍 니 다.이 방법 은 void 로 돌아 가 고 매개 변수 가 없습니다.이 방법 에서 우 리 는 테스트 대상 을 초기 화 했 습 니 다.Assert 류 는 몇 가지 방법의 집합체 를 정 의 했 습 니 다.이 를 통 해 설정 조건 을 검 측 했 습 니 다.우리 의 예 에서...저 희 는 AreEqual 방법 으로 뒤의 두 계 정의 계좌 이체 가 모두 정확 한 잉여 자금 을 확보 합 니 다.(이것들 은 재 업로드 방법 입 니 다.이 예 에서 사용 하 는 버 전 은 다음 과 같은 몇 가지 매개 변 수 를 포함 하고 첫 번 째 매개 변 수 는 기대 치 이 며 두 번 째 시험 은 진실 치 입 니 다) 이 예 를 컴 파일 하여 실행 합 니 다.만약 에 당신 의 코드 를 bank.dll 로 컴 파일 하고 NUnit Gui 를 실행 하 며 File->Open menu item 을 선택 하여 방금 컴 파일 한 dll 파일 을 불 러 옵 니 다.run 을 누 르 면 테스트 바 가 빨간색 으로 변 하 는 것 을 볼 수 있 습 니 다.테스트 가 실 패 했 습 니 다."Errors and Failures"패 널 에 정 보 를 표시 합 니 다. TransferFunds : expected <250> but was <150> 이 현상 은 우리 가 기대 하 는 것 입 니 다.테스트 실패 의 원인 은 우리 가 TransferFunds 방법 을 실현 하지 못 했 기 때 문 입 니 다.지금부터 우 리 는 그것 을 일 하 게 하고 당신 의 TransferFunds 방법 을 다음 과 같이 수정 합 니 다.
1 public void TransferFunds(Account destination, float amount)2 {3 destination.Deposit(amount);4 Withdraw(amount);5 } 이제 우 리 는 코드 를 다시 컴 파일 하고 GUI 에서 실행 합 니 다.우 리 는 어떻게 테스트 줄 이 녹색 으로 변 하 는 것 을 볼 수 있 습 니까?테스트 성공! 저 희 는 Account 코드 에 오류 검 사 를 추가 하여 balance 에 최소 치 를 설정 합 니 다.순서대로 자금 당좌대월 을 보호 합 니 다.
1 private float minimumBalance = 10.00F;2 public float MinimumBalance3 {4 get { return minimumBalance;}5 } 당좌대월 을 나타 내 는 이상 추가 하기;
1 public class InsufficientFundsException : ApplicationException2 {3 } AccountTest 클래스 에 테스트 방법 추가
1 [Test] 2 [ExpectedException(typeof(InsufficientFundsException))] 3 public void TransferWithInsufficientFunds() 4 { 5 Account source = new Account(); 6 source.Deposit(200.00F); 7 Account destination = new Account(); 8 destination.Deposit(150.00F); 9 source.TransferFunds(destination, 300.00F);10 } 이 테스트 방법의[Test]속성 은[Expected Exception]속성 이 있 습 니 다.이것 은 이 테스트 코드 가 특정한 유형의 이상 을 기대 하고 있 음 을 나타 냅 니 다.만약 에 이런 이상 이 실행 과정 에 나타 나 지 않 았 다 면 이 차 는 실 패 했 습 니 다.현재 코드 를 컴 파일 하고 NUnit Gui 를 시작 합 니 다.이것 은 테스트 항목 이 빨 개 지고 오류 정 보 를 알려 줍 니 다. TransferWithInsufficentFunds : InsufficientFundsException was expected Account 의 코드 를 다시 설정 하여 이상 을 던 지게 하고 아래 의 실례 에 따라 TransferFunds 방법 을 수정 합 니 다.
1 public void TransferFunds(Account destination, float amount)2 {3 destination.Deposit(amount);4 if(balance-amount < minimumBalance)5 throw new InsufficientFundsException();6 Withdraw(amount);7 } 컴 파일,실행 테스트-테스트 바 가 녹색 으로 변 하여 성공 하 였 습 니 다.그러나 우 리 는 이 코드 를 보 았 습 니 다.우 리 는 단지 우리 가 볼 수 있 는 이체 작업 중의 오 류 를 썼 을 뿐 입 니 다.지금 우 리 는 테스트 를 써 서 우리 의 불확실 한 오 류 를 증명 하고 다음 테스트 방법 을 추가 합 니 다.
1 [Test] 2 public void TransferWithInsufficientFundsAtomicity() 3 { 4 Account source = new Account(); 5 source.Deposit(200.00F); 6 Account destination = new Account(); 7 destination.Deposit(150.00F); 8 try 9 {10 source.TransferFunds(destination, 300.00F);11 }12 catch(InsufficientFundsException expected)13 {14 }15 Assert.AreEqual(200.00F,source.Balance);16 Assert.AreEqual(150.00F,destination.Balance);17 } 컴 파일 운행-빨간색 테스트 바,우 리 는 300 위안 을 잘못 계산 하 였 습 니 다.코드 는 정확 한 결 과 를 150 위안 으로 표시 하 였 으 나,계 정 은 확실히 450 위안 으로 표시 되 었 습 니 다.그러면 어떻게 오 류 를 고 칠 수 있 습 니까?최소 펀드 검 사 를 추가 하여 자금 처리 전에 할 수 있 습 니까?우 리 는 catch 블록 에 수리 방법 을 추가 하거나 관리자 의 복구 대상 에 대한 규정 에 의존 할 수 있 습 니 다.우 리 는 여러 가지 측면 에서 이런 질문 에 대답 해 야 합 니 다.그러나 지금 이 아 닙 니 다.그 사이 에 우 리 는 어떻게 할 수 있 습 니까?옮 겨?가장 좋 은 방법 은 그것 을 무시 하고 테스트 방법 에 다음 속성 을 추가 하 는 것 이다.
1 [Test]2 [Ignore("Decide how to implement transaction management")]3 public void TransferWithInsufficientFundsAtomicity()4 {5 // code is the same6 } 테스트 코드 인 노란색 을 컴 파일 하고"Tests Not Run"을 누 르 면 bank.Account Test.Transfer With InsufficientFundsAtomicity()가 무시 되 는 테스트 목록 에 있 는 것 을 볼 수 있 습 니 다. 위 에 자주 사용 되 는 간단 한 방법 입 니 다.순서대로 nunit 의 사용 과정 을 설명 합 니 다.앞으로 의 단원 에서 우 리 는 nunit 의 사용 을 깊이 설명 할 것 입 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
json에서 ObjectMapper를 쓰는 클래스 테스트를 읽습니다.는 스위프트의 제이슨 파어 중 하나다. Mappable을 상속하여 Enity Object를 만들 수 있습니다. 이 반의 테스트를 쓸 때 JSON 파일에서 User의 데이터를 읽어서 테스트를 진행합니다. User.js...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.