>source

몇 가지 code를 테스트하고 싶습니다.

public ViewModel FillClientCreateViewModel(ViewModel model){
    model.Phone= new Phone { Name= "Test"};
    model.Phone= _entityInitializer.FillViewModel(model.Phone);
}

또한 내가 제공한 것과 동일한 개체를 반환하도록 FillViewModel을 설정하고 싶습니다.

내 테스트:

 entityInitMock.Setup(x=> x.FillViewModel(It.IsAny<PhoneViewModel>())).Returns(It.IsAny<PhoneViewModel>());
 var result= TestedInstance.FillClientCreateViewModel(CreateViewModel);
 result.Phone.Name.ShouldBe("Test");

그러나 이 경우 내 테스트가 떨어졌습니다. 왜냐하면 result.Phone.Name이 내 모의에 의해 지워졌기 때문입니다.

내가 주는 것과 동일한 객체를 제공하도록 mock을 어떻게 설정할 수 있습니까?

  • 답변 # 1

    entityInitMock.Setup(x=> x.FillViewModel(It.IsAny<PhoneViewModel>()))
        .Returns((PhoneViewModel m)=> m);
    

    모크 퀵스타트유사한 질문에 대한 훌륭한 참고 자료입니다.

    ReturnAsync에서 어떻게 작동합니까? "람다 식을 대리자 형식이 아니므로 ____ 형식으로 변환할 수 없습니다"라는 메시지가 나타납니다.

    johni2022-02-08 05:06:50

    좋은 답변입니다. TDD 시나리오의 이러한 뉘앙스는 상세한 TDD를 위해 모든 너트와 볼트를 제자리에 배치하는 데 중요합니다. 감사 해요.

    Tore Aurstad2022-02-08 11:50:02
  • 이전 메모리에 전체 출력을 구성하지 않고 Polar를 사용하여 DataFrame을 처리할 수 있습니까?
  • 다음 python : 루프에 대한 파이썬 루프 도움말