0

Rhino Mock を使用して WCF クライアント プロキシをモックしようとしていますが、うまくいきません。

    var ServiceMock = MockRepository.GeneratePartialMock<ServiceClient>();
    ServiceMock.Expect(p => p.Publish("")).IgnoreArguments().Return("Worked");

これが、私がプロキシをモックアウトしようとしてきた方法です。これは、コンストラクターによる通常のセットアップです。

これは ServiceClient をモックしているようには見えませんが、誰でも助けることができますか?

4

2 に答える 2

0

次のようなことができるはずです:

[TestClass]
public class MyTestClass{

private IService _service;

[TestInitialize]
public void Setup(){
_service = MockRepository.GenerateStrictMock<IService, ICommunicationObject>();
}

[TestMethod]
public void TestWhatsGoingOn(){

_service.Expect(.....).Return(.....);

//This will test the close is called too (hence the ICommunicationObject above)
((ICommunicationObject)_service).Expect(r => r.Close());
}

[TestCleanup]
public void CleanItUp{
_service.VerifyAllExpectations();
}

これは、close メソッドも呼び出されることをテストできることを意味します (予想どおり)。

部分的ではなく厳密なモックを生成する必要があると思います...

また、もちろん、例外処理中に .Abort() 呼び出しが行われたことをアサートしたい場合は、次のようにして実行できます。

((ICommunicationObject)_service).Expect(r => r.Abort());
于 2012-09-13T14:33:37.150 に答える
0

これは、WCF で Rhino モックを使用するのに役立ちます

http://kashfarooq.wordpress.com/2008/11/29/mocking-wcf-services-with-rhinomocks/および http://ayende.com/blog/2095/wcf-mocking-and-ioc-oh-my

于 2012-09-13T09:09:39.863 に答える