問題タブ [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.
akka.net - Akka.NET TestKit の同期動作
AKKA.NET アクターの動作をテストする次の C# コードがあります。ステートメントproductActor.Tell(new ChangeActiveStatus(true));
はブロッキング呼び出しであると予想されます (TestKit はこのブログに従って同期呼び出しを行います) が、すぐに返されます。その結果、ActiveStatus は後で変更されますが、2 番目のテストは失敗します。
****** アップデート *****
Thread.Sleep(10000) を使用した次のコードは成功します。
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
呼び出すメッセージを送信することです。テストでビットをコメントアウトする必要はありませんか?Foo
OrderPlaced
これを行うことはできますか、それとも私はこれについて完全に間違っていますか?
前もってありがとう、DS。
java - akka アクターのプライベート メソッドの powermockito
私は次の俳優を持っています
このアクターを単体テストするには、「doSomethingNow」メソッドをモック化する必要がありますか? PowerMockito doc から、アクターであるクラスもモックする必要があるように見えますが、TestKit は既にアクターのモックに関するフレームワークを提供しています。このアクターをテストする正しい方法は何ですか?