사용자 입력에 대한 유효성 검사를 수행 한 다음 부모 (PorEO)를 삽입 한 다음 하위 항목 (PorBoxEO)을 삽입하는 BLL이 있습니다. 따라서 동일한 InsertJCDC를 두 번 호출합니다. 하나는 => InsertJCDC (fakePor)이고 다른 하나는 => InsertJCDC (fakeBox)입니다.구조체 모크 스텁 도움말
부모를 스텁 아웃 할 때 fakePor를 반환하고 싶습니다. 하지만 코드를 실행하면 대신 null이 반환됩니다. 단위 테스트입니다.
[Test]
public void PorBLL_InsertByPorInsertCV_DoingGoodCase()
{
// Startup object mapper
_Bootstrapper.Bootstrap();
// create the mock for generic Crud
IGenericCrud mockGenericCrud = MockRepository.GenerateMock<IGenericCrud>();
PorInsertCV fakePor = new PorInsertCV();
PorBoxInsertCV fakeBox = new PorBoxInsertCV();
// build fake return
PorEO fakePorNewRow = new PorEO();
fakePorNewRow.PorId = 22;
// stub parent and child insert routines.
mockGenericCrud.Stub(c => c.InsertJCDC<PorEO, PorInsertCV>(fakePor)).Return(fakePorNewRow);
mockGenericCrud.Stub(c => c.InsertJCDC<PorBoxEO, PorBoxInsertCV>(fakeBox)).Return(null);
ObjectFactory.Inject(typeof(IGenericCrud), mockGenericCrud);
IPorBLL localWithMock = ObjectFactory.GetInstance<IPorBLL>();
// build user args to csll bll with and use for insert
PorInsertCV userArgs = new PorInsertCV();
userArgs.AccessionNbr = "364-80-0007";
userArgs.NbrBoxes = 11;
userArgs.RegId = 20;
userArgs.TransmitedDt = Convert.ToDateTime("1/30/1980");
// call the bll using the stub
localWithMock.InsertByPorInsertCV(userArgs);
}
는 어떤 도움을 크게 나는 정말 당신의 코드를 따라 갈 수 없어,하지만 난 그에게 기회를주지
정확히 테스트하려고합니까? 나는 아무런 주장도하지 않는다. –