1
发送对象可以说我有一个事件处理程序,如下所示:单元测试在事件处理
public SomethingHappended_Handler(object sender, EventArgs e)
{
var myobj = sender as MyClass();
myobj.DoSomethingImportant();
}
我如何可以测试MyObj中是MyClass的类型?我知道,发件人将永远是MyClass的,但我只是想为了安全起见,我需要一个:
if (myObj != null) //Close it
如果类型不是MyClass的那么MyObj中将为空。因为我知道最好测试非空值如何创建一个单元测试来证明如果我发送除MyClass之外的其他类型的发件人,它将会覆盖调用DoSomethingImportant,因此我需要空值检查?
什么是错误的标准类型检查是否(myobj == null)... – Lloyd 2012-02-22 12:54:53
@Lloyd你仍然需要投送发送者能够调用它的方法 – Jon 2012-02-22 12:57:41
你基本上要求测试看看是否'as'做它应该做的事 - 恕我直言,你不应该需要在C#工作的方式下进行“单元测试”。 'as'只会在你想要投射的对象属于该类或该类的子类型时才会投射。但是,如果您真的想要编写另一个使用'as'安全转换的代码块,或者直接使用'is'关键字测试类型。或者,事件处理程序只是一个类中的一个方法,为它编写一个测试,就像任何一个类一样。 – 2012-02-22 13:09:14