17

コンストラクターを呼び出してメソッドをテストするだけでは、Reliable Service/Actor をテストすることはできません。var testService = new SomeService();NullReferenceException をスローします。では、デプロイされたサービスで何ができるでしょうか..

展開された SF Reliable Services/Actors は標準の .NET クラスではなく、展開された S/A の単体テストは奇妙な考えかもしれません。

とにかく今、私はそれを試してみようとしています。

例えば。テストでは Proxy オブジェクトを作成し、アイテムを Service の入力キューに追加しました。次に、入力キュー カウント = 1 をアサートする必要があります。これは、サービスをデプロイしたばかりで、他のクライアント/サービス/アクタがその入力キューを使用していない場合に機能します。しかし、次にこのテストが失敗することが問題です。サービスを他のコンシューマーとの動作を停止し、キューをドロップしてからテストする必要があります。この目的のために、いくつかの TestMode プロパティと、PropareoForTests/TestingCompleted などのいくつかのメソッドを作成し、テストの前後にテスト クライアントからそれらを呼び出すことができます。

これはそのようにするのは悪い考えですか?SFの単体テストに関するガイドラインはありますか?ありがとう。

アップデート:

Service Fabric Web リファレンス アプリケーションの例を調査しているときに、次の TODO 文字列を見つけました。

/// TODO: Temporary property-injection for an IServiceProxyWrapper until constructor injection is available.

SF Services が DI サポートを改善するということですか? 俳優はどうですか?

4

2 に答える 2