2017-01-04 7 views
0

저는 현재 신뢰할 수있는 액터 중 하나에서 SOAP 서비스를 호출하는 서비스 패브릭 프로젝트를 진행하고 있습니다. 이 호출을 위해 우리는 Actor의 Settings.xml에서 두 개의 매개 변수를 읽었고 App.config 파일의 SOAP 끝점 주소와 바인딩 정보를 읽었습니다. 실제로 후자는 SOAP 서비스에 대해 생성 된 서비스 프록시 클래스에 의해 암시 적으로 수행됩니다.서비스 패브릭 단위 Settings.xml 및 App.Config에서 구성 정보를 읽는 안정적인 액터 메서드를 사용합니다.

이제 xUnit + ServiceFabric.Mocks를 사용하여 유닛 테스팅 작업을 시도하고 있습니다. 내가 통과 행위자 특정 메소드를 테스트하려면 다음 단계에서 활성화 컨텍스트의 인스턴스를 사용하여 "StatefulServiceContext을"만들기 "MockCodePackageActivationContext" 2) 만들기 1) 1. 3)

아래의 코드로 액터를 인스턴스화
MyActor target = new MyActor(
       new ActorService(
        context: serviceContext, 
        actorTypeInfo: ActorTypeInformation.Get(typeof(MyActor)), 
        stateManagerFactory: (actorBase, stateProvider) => new MockActorStateManager() 
       ), 
       new ActorId(Guid.NewGuid()) 
      ); 

4) 나는 설정 정보를 읽어 인해 무능력 나누기 target.MyMethod은() 중 하나 Settings.XML의 또는의 App.config에서 target.MyMethod_Test은()하지 않는 경우

내가 테스트를 만든 파일을 호출 구성에서 아무 것도 읽지 못했고 성공했습니다.

비슷한 일을 겪은 사람은 누구입니까? 어떻게 그걸 해결 했니?

답변

0

구성 데이터를 제공하는 별도의 클래스를 만들 수 있습니다. 이를위한 인터페이스를 생성 한 다음 프로그램 생성자의 액터 생성자에 삽입하십시오. 예를 들어 서비스 컨텍스트를 새 클래스에 전달합니다.

또한 인터페이스의 모의 구현을 만들고 테스트 용으로 해당 인터페이스를 액터로 전달합니다.