그래서 여기 있습니다 : LINQ to Entities (EF4/.NET4)를 사용하는 테스트중인 앱이 있습니다. 이 응용 프로그램은 null을 무시하고 데이터베이스 구성 방식으로 인해 대소 문자를 무시하는 Contains 메서드의 구현에 바인딩됩니다. 그건 잘된거야.단위 테스트 중에 IQueryable의 Contains 메서드를 재정의하려면 어떻게합니까?
그러나 단원 테스트에서 동일한 메서드를 호출 할 때 IQueryable의 메모리 내 구현을 사용하여 컬렉션을 노출하는 가짜 컨텍스트를 전달합니다. 이 경우 LINQ to Objects 버전의 Contains가 들어 와서 null과 대소 문자를 구분합니다.
이제 응용 프로그램 코드를 작성하여 null 및 대소 문자를 검사 할 수는 있지만 생성되는 SQL에 영향을 미치지 않으므로 단위 테스트에서 호출되고 SQL이 관련되지 않을 때 작동합니다. .
내가 원하는 것은 올바른 IQueryable 또는 무엇이든을 제공하여 테스트 중에 null 및 대소 문자를 무시하는 내 자신의 사용자 지정 Contains 구현에서 스왑 할 수 있도록하는 것입니다. 어떻게해야합니까? 감사!
할 수 있습니다. 내 사용자 지정 Contains 메서드에 바인딩하려면 어떻게합니까? 그게 내가 붙어있는 곳이야. – csells
모의를 함수에 어떻게 전달합니까? – Oded
그건 그냥 가짜예요. Contains의 LINQ to Objects 바인딩이 호출되고 있습니다. 내 자신의 사용자 지정 구현의 Contains를 호출해야합니다. – csells