지금까지 AAA 방법을 사용해 왔는데, 파일이 존재하는지, 파일을 읽을 수 있는지 등을 테스트하기 위해 '모형'테스트 세트에 배포하고 싶습니다.
내가 사용한 코드 유형은 다음과 같습니다.
[TestMethod]
public void Mul_TestValues0and0_EvaluatesTo0() {
// Arrange
var testArgument1 = 0;
var testArgument2 = 0;
var expectedResult = 0;
// Act
var actualResult = testedClass.Mul(testArgument1, testArgument2);
//Assert
var failMessage = String.Format(@"{0} * {1} evaluates to {2}, actual test result was {3}", testArgument1, testArgument2, expectedResult, actualResult);
Assert.AreEqual(expectedResult, actualResult, failMessage);
}
원하는 것은 기능 통합 테스트이지만 단위 테스트는 아닙니다.
SUT에 삽입하고 조롱 할 수있는 인터페이스가있는 클래스로 IO 작업을 래핑해야합니다.
그런 다음 파일 읽기 결과를 모의 처리하고 나머지 비즈니스 로직을 테스트 할 수 있습니다.
말이 돼?
편집 : 좀 더 컨텍스트를 제공하려면 :
단위 테스트는 말 그대로 한 번에 하나의 단위 만 테스트하는 것을 의미합니다. 파일을 읽고 직렬화 등을 수행하는 메소드를 테스트하면 분명히 한 가지 이상을 테스트하는 것입니다.
시스템 IO 라이브러리가 이미 테스트되었다고 가정 할 수 있기 때문에 테스트를 너무 많이 할뿐만 아니라 많은 테스트 작업을 복제하고 있는데,이 작업을 반복하는 이유는 무엇입니까? 얇은 래퍼 클래스로 추상화하고 자신의 도메인 로직에 테스트를 집중합니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다