그래서 저는 조롱하는 데 익숙해졌습니다. 이 클래스에Rhino Mock을 사용하여 개인 객체를 모의합니다.
private CoreDataContext _coreDataManager;
: : 여기이 개인 변수가
public class RatesControlReport
: Chatham.Panda.Batch.ProcessDefinition.BatchProcess
이 클래스는 내가 CheckSwaptionVols(DateTime runDate)
라는 테스트 할 그것에 void
방법이있다.
내 테스트의 첫 부분에서 나는 메인 클래스의 인스턴스를 할 수 있습니다
RatesControlReport ratesControlReportProcess;
ratesControlReportProcess = new RatesControlReport();
그리고 기본적으로 내가이 호출을 만들고 싶어 :
이ratesControlReportProcess.CheckSwaptionVols(DateTime.Now);
그러나이 방법과 같이 민간 변수를 사용을 :
System.Data.Linq.ISingleResult<CheckSwaptionVols> swaptionStatusResult = _coreDataManager.CheckSwaptionVols(this._runDate);
대신이 변수의 조롱 된 버전을 전달하고 싶습니다. 내 자신의 지정 System.Data.Linq.ISingleResult<CheckSwaptionVols>
을 돌려서 DB에 의존하지 않고 테스트를 계속할 수 있도록하십시오.
어떻게하면됩니까?
+1 동의. 생성자에 객체를 전달하지 않으면 단위 테스트를 설정하는 "엉덩이의 고통"이 발생합니다. 또는 더 나쁜 것은 단위 테스트를 포기하는 것이 너무 번거롭기 때문입니다. –