쉽게 법에가짜에 MustHaveHappend (Collection.That.Contains (객체))를 주장하는 방법 그것이 내가 과정 저장소를
A.CallTo(
() => _courseClientStatusRepository.GetTnCoursesForClientStatus()).Returns(new List<CourseClientStatusCreationDto>
{
new CourseClientStatusCreationDto { CourseTnId = Enums.CourseLevel.Beginner },
new CourseClientStatusCreationDto { CourseTnId = Enums.CourseLevel.Intermediate, },
new CourseClientStatusCreationDto { CourseTnId = Enums.CourseLevel.Advanced, }
}
);
정렬 나는
를 호출하는 방법을ICourseClientStatusRepository
의와 어설에서
void CreateClientCourseStatus(List<CourseClientStatusDto> courseClientStatusDto);
방법은, 나는 다음과 같은 수 있습니다. 첫 번째 주장이 통과되고 두 번째와 세 번째 주장이 실패합니다.
나는 적어도 그것의 특정 값이 중요하지 않은 유형 CourseClientStatusDto의 개체의 인스턴스를 기대하고 있어요에 전달하는 두 번째 어설 기대하고A.CallTo(
() => _courseClientStatusRepository.CreateClientCourseStatus(A<List<CourseClientStatusDto>>.Ignored))
.MustHaveHappened();
A.CallTo(
() => _courseClientStatusRepository.CreateClientCourseStatus(A<List<CourseClientStatusDto>>.That.Contains(A<CourseClientStatusDto>.Ignored)))
.MustHaveHappened();
A.CallTo(
() => _courseClientStatusRepository.CreateClientCourseStatus(A<List<CourseClientStatusDto>>.That.Contains(A<CourseClientStatusDto>.That.Matches(
x => x.CourseTnId == Enums.CourseLevel.Beginner
))))
.MustHaveHappened();
은, 그러므로 나는 .Ignored 속성을 사용했다.
아마도 컬렉션에 특정 객체가 포함되어있는 경우 어설 션하는 것이 잘못된 것일까? (쉽게 가짜를 사용하여 .mustHaveHappened() 메소드)?
@ Blair, 마지막 두 검사가 작동합니다. 코드가 도움이되었습니다. 감사합니다. 나는 Fake It Easy 버전 3.4.0을 사용하고 있습니다. 그리고 네, 배열의 코드를 요약하고 싶습니다. 나는 FakeItEasy를 추가 할거야. 분석가 .CSharp – Ntu