gpt4 book ai didi

c# - 通过操作轻松假装 - 说它找不到电话但显示在列表中

转载 作者:行者123 更新时间:2023-11-30 15:18:05 26 4
gpt4 key购买 nike

我像这样简单地使用 fake it :

var callBackAction = A.Fake<Action<object>>();

//act
token.RegisterChangeCallback(callBackAction, "hi");

//assert
A.CallTo(() => callBackAction.Invoke(A<object>.Ignored)).MustHaveHappened();

我得到了错误

    FakeItEasy.ExpectationException : Assertion failed for the following call: 

System.Action`1[System.Object].Invoke(obj: <Ignored>) Expected to find it

exactly once but found it #0 times among the calls:

1: System.Action`1[System.Object].Invoke(obj: "hi)

这对我来说似乎很奇怪。我可以理解它是否没有找到或者它是否与覆盖 equals() 有关,但这很奇怪,因为它显然已经找到了我的电话并且我正在使用忽略但它没有匹配它们。这与使用 Action 有关吗?

最佳答案

这是因为生成了一个等待条件的线程,然后在该线程中调用了操作。在测试中,此条件立即为真,因此线程返回得非常快。这对于 Assets 来说还不够快,因为在创建线程后立即发生这种情况,因此测试失败。但是,在断言失败之后和 FakeItEasy 完成收集针对错误消息发生的调用之前,将调用该操作。这导致 FakeItEasy 显示它作为错误消息的一部分被调用,尽管测试失败是因为它没有被调用。

这就是我认为会发生的事情。 Diagram of threads

关于c# - 通过操作轻松假装 - 说它找不到电话但显示在列表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44884418/

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