gpt4 book ai didi

testing - 如何使用 akka.net testkit 期待一些消息并忽略其他消息?

转载 作者:行者123 更新时间:2023-11-28 20:04:35 35 4
gpt4 key购买 nike

我对一个 actor 进行了测试,该 actor 可能会响应一些意外消息,但最终它必须响应特定的已知消息。所以本质上我想要一个断言,它会在某个时间跨度内忽略其他消息,但期待一个已知消息,就像这样:

    [TestMethod]
[TestCategory("Integration")]
public async Task Should_fetch_fund_shareclass_and_details_from_test_service()
{

var testIsins = new HashSet<string> {"isin1", "isin2", "isin3"};

var props = Props.Create(() => new DataFetchSupervisor());

var actor = Sys.ActorOf(props, "fetchSupervisor");
Within(TimeSpan.FromSeconds(30), () =>
{
actor.Tell(new StartDataFetch(testIsins));

//ignore unexpected messages here

var fetchComplteMsg = ExpectMsg<DataFetchComplete>();

});
}

所以现在这将失败,因为我在 DataFetchComplete 消息之前收到了一些其他消息。

一如既往,提前感谢您的帮助。

最佳答案

Akka.TestKit类有许多不同版本的 ExcpectMsg 或等效的检查器。您要找的可能是 FishForMessage .它需要一个谓词,并会忽略所有传入的消息,只要它们无法通过谓词的条件。一旦找到传递的消息,此检查将完成,您的代码可能会继续。

关于testing - 如何使用 akka.net testkit 期待一些消息并忽略其他消息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46212984/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com