单元测试EventHandler中的发送方对象
本文关键字:对象 方对象 EventHandler 单元测试 | 更新日期: 2023-09-27 18:25:20
假设我有一个事件处理程序,如下所示:
public SomethingHappended_Handler(object sender, EventArgs e)
{
var myobj = sender as MyClass();
myobj.DoSomethingImportant();
}
如何测试myObj是MyClass的类型?我知道发件人永远是MyClass,但我只是觉得为了安全起见,我需要一个:
if (myObj != null) //Close it
如果类型不是MyClass,那么myObj将为null。正如我所知,最好测试非null,我如何创建一个单元测试来证明如果我作为MyClass以外的发送方发送不同的类型,它将无法调用DoSomethingImportant,因此我需要null检查?
我可以用伪代码回答你,指出你可以做什么。
首先,您可以检查发件人是否属于MyClass类型。
if(sender is MyClass)
然后在单元测试中,您可以发送两个mock对象,一个是MyClass类型,另一个是"MyClassFake"类型。使一个接口同时使用并实现Close()方法。
进行两次单元测试:
- 验证是否调用了MyClass.Close()
- 验证是否从未调用过MyClassFake.Close()
Close()只是一个例子,如果你有其他方法,你可以针对它们测试调用/未调用。