문제

MOQ 3.0을 사용하여 iunityContainer를 조롱하려고합니다

BadimageFormateXception을 받고 있지만 디버깅 할 때는 아닙니다. 그것의 외관에서 나는이 문제에 빠진 유일한 사람이 아닙니다.

여기

그리고 Moq에 등록 된 문제입니다

여기

누군가가 해결책을 찾았다면 궁금합니다 ... 내가 찾은 가장 가까운 곳은 Roy Osherove의 Rhinomock을 사용하는 멋진 솔루션입니다.

여기

그러나 나는 MOQ를 정말 좋아한다! 그래서 나는 정말로 Rhino Mock으로 전환하고 싶지는 않지만 내가해야한다면

미리 감사드립니다!

도움이 되었습니까?

해결책

당신은 그렇지 않습니다.

용기를 조롱하는 유일한 이유는 컨테이너를 통과하는 경우입니다. 그것은 반란의 방향입니다.

대신 응용 프로그램의 진입 점에서 전체 객체 그래프를 작성하거나 구성 뿌리.

즉시 인스턴스를 만들어야하는 경우 사용하십시오. 자동 공장.

테스트의 경우 테스트중인 객체를 구성하고 조롱 객체를 생성자에게 전달하거나 테스트에서 새 컨테이너를 만들고 모의 객체를 등록 할 수 있습니다.

다른 팁

iunityContainer, ALA 대신 UnityBaseContainer 또는 UnityContainer를 조롱하려고 했습니까? 이 게시물 로리 앵초? 그는 Rhinomocks를 다루고 있지만 문제는 MOQ의 Castle의 내부 사용과 관련이 있다고 생각하기 때문에 이런 식으로 문제를 해결할 수 있습니다.

본격적인 모의 물체가 필요합니까? 단순히 가짜를 구현할 수 있습니까? 즉, iunityContainer 인터페이스의 테스트 인스턴스화를 구현하고 상호 작용 해야하는 방법을 재정의합니까?

나는 Mock Object 라이브러리가 있기 때문에 시스템의 모든 종속성을 분리하는 데 사용해야한다고 생각하면서 한 번 이상 함정에 빠졌습니다. 더 종종 더 간단한 일을하면 좌절 수준이 훨씬 낮은 결과를 얻을 수 있습니다.

이 문제로 인해 나는 조롱하지 않습니다 IUnityContainer, 나는 실제 인스턴스를 사용합니다 UnityContainer 대신에. 이상적이지는 않지만 컨테이너가 유형을 적절하게 해결할 수 있는지 확인하여 등록을 테스트 할 수 있습니다.

조롱하고 사용할 수 있습니다 IServiceLocator 클래스에서 유형을 해결하기 위해 사용하거나 더 나은 경우 컨테이너와 함께 공장 등록을 사용하여 대신 사용하십시오.

win x64에서 이것을 실행하고 있습니까? 이것을 살펴보십시오 페이지. 분명히 제안합니다.

이 예외는 동적 링크 라이브러리 (.dll 파일) 또는 실행 파일 (.exe 파일)의 파일 형식이 공통 언어 런타임에서 예상되는 형식을 준수하지 않을 때 발생합니다.

또한 CPU에서 X86으로 컴파일 플래그를 변경하면 원인이 도움이 될 수 있습니다. http://filips.net/archives/2008/01/17/getting-badimageformatexception-in-64-bit-windows/

편집하다:

또한 살펴보십시오 이것 그래서 스레드. 빌드 구성 관리자도 살펴보십시오.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top