0

ユニットテストでクラスStatelessServiceを継承するクラスAのインスタンスを作成したいとします。しかし、私はできません。私はすべてを試してみました。依存関係を嘲笑し、自分のコンテキストを実装しました。サービスファブリックでユニットステートレスサービスをユニット化する方法

インスタンスを作成しようとすると、StatelessServiceはどこかでNullReferenceExceptionをスローします。

これはまったくできますか?

class A : StatelessService 
{ 
    public A(StatelessServiceContext context) : base(context /* Here will be thrown NullReferenceException */) 
    { 
     // It will never even get there. 
    } 
} 

class UnitTest 
{ 
    public void TestMethod() 
    { 
     var activationContext = MOCK<ICodePackageActivationContext>(); 
     var context = new StatelessServiceContext(..., activationContext, ...); 
     var a = new A(context); // Here will be thrown an exception. 
    } 
} 
+0

あなたの問題をよりよく示す[mcve]としていくつかのコードを提供してください。これは、問題を特定し、可能な解決策を導き出すのに役立ちます。 – Nkosi

+0

@Nkosi最小擬似コードを提供する質問を更新しました。 – EwanCoder

+0

また、エラーが発生した場所と場所についてさらに説明する必要があります。ここのサンプルを見て、https://github.com/Azure-Samples/service-fabric-watchdog-service/blob/90c6418a99b5fcd777a5b7c2a5f6443fdcc9f42a/TestStatelessService/TestStatelessService.csに役立つ例が見つかるかどうかを確認してください。 – Nkosi

答えて

1

できます。しかし、ホイールを発明する代わりに、サービスファブリックモックを見てください。https://github.com/loekd/ServiceFabric.Mocks

これは、あなたのタイプのシナリオに役立つヘルパーを含んでいます。

+0

私はそれを試してみましたが、動作しませんし、さまざまなバージョンのサービスファブリック上ですべての種類の例外をスローします。とにかく、私は私の問題を解決しました。これは型初期化子と* my *クラスで設定されていないいくつかの静的プロパティを持っていました。これはサービスファブリックとは関係ありません。 – EwanCoder

+1

@EwanCoder、フィードバック/問題をパッケージに投稿することを検討してください。誰もが利益を得ることができます。 https://github.com/loekd/ServiceFabric.Mocks/issues – LoekD

関連する問題