コンストラクターを呼び出してメソッドをテストするだけでは、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 サポートを改善するということですか? 俳優はどうですか?