moq를 사용할 때 이상한 점이 있습니다.MOQ가 유효하지 않음 void
하나의 프로젝트에서 메소드가 호출되었다는 것을 검증하려고 시도 할 때 그것이 아니라고 말합니다. 테스트를 디버깅 할 때 메소드를 명확하게 호출합니다.
캐시에 항목을 추가할지 여부를 알려주는 간단한 캐시 개체입니다. 나는 (다른 사람들과 함께) Add, Contains, Get 메소드를 가지고있다.
이러한 방법에 좋은 작품을 확인 내 :
bool Contains(string key);
T Get<T>(string key);
하지만이에를 :
mockedCache.Verify(p => p.Add(LOCATION_CACHE_KEY, locations, policy), Times.Once());
: 나는 정확한 값을 오순절 시도
void Add(string key, object objectToCache, CacheItemPolicy policy);
나는이 같은 방법으로 제공
사용 중 .IsAny
mockedCache.Verify(p => p.Add(It.IsAny<string>(), It.IsAny<IEnumerable<string>>(),
It.IsAny<CacheItemPolicy>()), Times.Once());
아무리 내가 시도해도 0 번 호출 된 응답을 얻습니다.
전에이 동작을 본 적이 없습니다. 아무도 나에게 뭐가 잘못 됐는지 말해 줄 수 있니?
감사
마이클
업데이트 : @SergRogovtsev 제안으로 , 내가 생성 된 출력 MOQ 보았다. 하지 IEnumerable을 함께하지만, MOQ는 전달 된 매개 변수의 정확한 유형을 확인하지 않습니다 보았 듯이 목록
Moq는 어설 션 메시지에서 호출 된 것을 쓰는 경향이 있습니다. 무엇이라고 불렀습니까? 또한 'Times'없이 시도해 보셨습니까? –
확인시 ... 오타입니다? 'It.IsAny'. 그것은'It.IsAny ()'이어야합니다. –
코드가 잘못되어 추가가 호출되지 않았다고 생각 했습니까? – cadrell0