2012-02-27 4 views
0

어레인지 어택 사용 어설 션 "내 데이터베이스의 통합 테스트를 고려하여 정렬"섹션에 있어야 할 내용을 어설 션 하시겠습니까?통합 테스트에서 어레인지 어썰트 패턴 사용

private void Delete_Release_Test_Data(string conString) 
     { 
      UnitTestHelper.PrepareData(new[] { "ReleaseId" }, new object[] { 100 }); 
      UnitTestHelper.InsertPreparedData(conString, RELEASE_TABLE); 
     } 

     [Test] 
     public void Delete_Release(string conString) 
     { 
      Delete_Release_Test_Data(conString); 

      // ARRANGE 
      // What should I put here ??? 

      // ACT 
      IReleaseDataProvider provider = new ReleaseDataProvider(); 
      provider.DeleteRelease(100); 

      // ASSERT 
      Assert.IsTrue(UnitTestHelper.HasNoData(conString, string.Format("SELECT * FROM {0}", RELEASE_TABLE))); 
     } 

답변

5

첫 번째 줄 Delete_Release_Test_Data(conString)은 아래에 배치되지 않는 이유 특정 이유가 있나요? 정렬 법 어설에 this link에서 :

각 방법은 그룹 빈 줄로 구분이 기능 섹션해야합니다

  1. 필요한 모든 전제 조건과 입력을 정렬합니다.
  2. 시험 대상 객체 또는 메소드에 대해으로 지정하십시오.
  3. Assert 예상되는 결과가 발생했습니다. 유효한 테스트 데이터를 삽입

는 상기 정렬 부 아래에 배치되어야 함을 의미이 시험의 전제 조건이다.

: 또한 Delete_Release_When_Exists이 테스트의 이름을 변경하고도 올바른 예외가 발생 또는 반환 값이 올바른지되어 있는지 확인하기 위해 테스트 Delete_Release_When_Doesnt_Exist을 만들 수 있습니다.

+0

"특정이 있습니까?"1.) 예 있습니다. 우리는 모든 테스트 전에 호출되는 [Setup] 속성을 사용하는 설치 방법으로 모든 전제 조건을 정상적으로 실행합니다. 우리는 방법에 대한 개별 테스트 데이터가 없습니다 (예외는 내가 게시 한 샘플에 있습니다 ...) 그래서 우리의 접근 방식은 AAA 패턴에 어떻게 맞습니까? "... 참고 : ..."2.) 내 deleteRelease 메소드가 실패해야하는 이유 때문에 아무것도 반환하지 않습니다. 저자 자체에서만 삭제할 수 있으므로 여기에는 동시성이 없습니다. – Pascal

+0

AAA는 단위 테스트에 초점을 맞추고 통합 테스트를 수행하고 있기 때문에 자세한 지침으로 사용하고 세부 사항에 너무 몰두하지 않아야합니다. 정렬 블록에 넣거나 그냥 [Setup] 메서드를 사용하는 경우에는 없어도됩니다. – Lester

+0

또한, 내 메모는 여전히 유효합니다. "왜 실패해야 하는가?" 그리고 일부 시스템에서는 예상 된 동작이 잘못된 입력에 실패하는 것으로 예상되지만 시스템에서 예상되는 동작은 아무 것도 수행하지 않을 수 있다고 주장 할 수 있습니다. – Lester

관련 문제