問題タブ [testkit]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
232 参照

akka.net - Akka.NET TestKit の同期動作

AKKA.NET アクターの動作をテストする次の C# コードがあります。ステートメントproductActor.Tell(new ChangeActiveStatus(true));はブロッキング呼び出しであると予想されます (TestKit はこのブログに従って同期呼び出しを行います) が、すぐに返されます。その結果、ActiveStatus は後で変更されますが、2 番目のテストは失敗します。

****** アップデート *****

Thread.Sleep(10000) を使用した次のコードは成功します。

0 投票する
1 に答える
310 参照

c# - あっかネット連携テスト

簡単な統合テストを実行したいというかなり単純なシナリオがあります。高レベルの概要は次のとおりです。

  • というactorメッセージに応答する がありますPlaceOrder
  • publishesこのアクターが を受信したときに別のメッセージを確認したいのですがPlaceOrder、この場合はOrderPlaced

問題は、統合テストの場合、メッセージが 経由で公開されたと断言できることExpectMsg<OrderPlaced>です。しかし、そのメッセージを処理するアクターも呼び出すことを期待していましたか?

おそらく、TestKitここでの私の理解は間違っていますが、それを継承すると次のようになります。

  • ActorOfAsTestActorRef<T>
  • ActorOf<T>
  • Sys.ActorOf(...)

私の印象は、ActorOf<T>実際Sys.ActorOf(...)のアクター システムのように動作するのに対し、ActorOfAsTestActorRef<T>厳密な単体テストには理想的であり、アクターが送信する可能性のあるメッセージをすべて飲み込むというものでした。

たとえば、これらは問題の 2 つのアクターです。

私のテストは次のようになります。この統合テストを自分で調整しなければならない奇妙な点は、OrderPlacedが公開されていることを確認してから、明示的に にメッセージを送信することFooです。

私が期待しているのは、これが処理するときにPlaceOrder呼び出すメッセージを送信することです。テストでビットをコメントアウトする必要はありませんか?FooOrderPlaced

これを行うことはできますか、それとも私はこれについて完全に間違っていますか?

前もってありがとう、DS。

0 投票する
1 に答える
142 参照

java - akka アクターのプライベート メソッドの powermockito

私は次の俳優を持っています

このアクターを単体テストするには、「doSomethingNow」メソッドをモック化する必要がありますか? PowerMockito doc から、アクターであるクラスもモックする必要があるように見えますが、TestKit は既にアクターのモックに関するフレームワークを提供しています。このアクターをテストする正しい方法は何ですか?