gpt4 book ai didi

c# - xUnit:如何断言 EventHandler 类型的其他事件

转载 作者:太空宇宙 更新时间:2023-11-03 12:09:46 25 4
gpt4 key购买 nike

我是单元测试的初学者,我已经在网上搜索了几个小时,但我仍然找不到我这个简单问题的答案。

我有一个类有以下事件:

event Action<ITagData> OnTagHandled

现在我想编写一个单元测试来断言事件是否已引发,但是当我编写如下内容时:

Assert.Raises<EventArgs>(handler => m_rssiHander.OnTagHandled += handler,
handler => m_rssiHander.OnTagHandled -= handler, () => { });

我收到如下错误:

Cannot implicitly convert type System.EventHandler to System.Action

有人能告诉我如何断言 Action<T> 类型的事件吗? ?

最佳答案

是因为handlerEventHandler<EventArgs> 的类型所以m_rssiHander.OnTagHandled += handler不会工作

你必须改变: event Action<ITagData> OnTagHandled

event Action<EventArgs> OnTagHandled让它工作或 EventArgs 的任何子类并继承 ITagData 接口(interface)

例如

class TagDataEventArgs: EventArgs, ITagData {}

并将其用作: event Action<TagDataEventArgs> OnTagHandled

并断言:

Assert.Raises<TagDataEventArgs>(handler => m_rssiHander.OnTagHandled += handler,
handler => m_rssiHander.OnTagHandled -= handler, () => { });

关于c# - xUnit:如何断言 EventHandler<EventArgs> 类型的其他事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52956862/

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