wpf行为单元测试
我正在使用附加的行为将拖放功能添加到我的代码中。 到目前为止,一切都很顺利,但我的问题是什么时候我想测试我的行为课 例如,其中一个行为类如下所示:wpf行为单元测试,wpf,unit-testing,testing,behavior,Wpf,Unit Testing,Testing,Behavior,我正在使用附加的行为将拖放功能添加到我的代码中。 到目前为止,一切都很顺利,但我的问题是什么时候我想测试我的行为课 例如,其中一个行为类如下所示: public class DroppableContainerBehavior: Behavior<FrameworkElement> { protected override void OnAttached() { base.OnAttached();
public class DroppableContainerBehavior: Behavior<FrameworkElement>
{
protected override void OnAttached()
{
base.OnAttached();
AssociatedObject.AllowDrop = true;
AssociatedObject.Drop += new DragEventHandler(AssociatedObject_Drop);
AssociatedObject.DragOver += new DragEventHandler(AssociatedObject_DragOver);
AssociatedObject.DragLeave += new DragEventHandler(AssociatedObject_DragLeave);
}
private void AssociatedObject_Drop(object sender, DragEventArgs e)
{
...
}
}
公共类DroppableContainerBehavior:行为
{
受保护的覆盖无效附加()
{
base.onatached();
AssociatedObject.AllowDrop=true;
AssociatedObject.Drop+=新的DragEventHandler(AssociatedObject\u Drop);
AssociatedObject.DragOver+=新的DragEventHandler(AssociatedObject\u DragOver);
AssociatedObject.DragLeave+=新的DragEventHandler(AssociatedObject\u DragLeave);
}
私有void关联对象(对象发送方,DragEventArgs e)
{
...
}
}
我现在的问题是,当我想为AssociatedObject\u Drop方法创建一个单元测试时,我需要创建一个DragEventArgs对象,但是这个类是密封的
我给人的印象是我做错了什么。。
我的问题是,我应该测试我的行为课吗?行为与UI相关,通常不值得测试UI。我说得对吗?
也许我必须改变我的行为准则,使其更易于测试?有什么想法吗
谢谢你的帮助 我会重构代码,将所有业务逻辑从
AssociatedObject\u Drop
移出到自己的函数中,然后为这些函数编写单元测试
你知道我如何创建一个对象,即使它的类是密封的吗?密封的类不能被继承,但你可以创建这个类的实例。请参阅,很抱歉,执行新DragEventArgs()时出现的问题不是密封的。我无法实例化它,因为构造函数是内部的。@实际上,我不明白为什么您需要创建此参数来签署处理程序以删除事件。如果您仍要创建此参数,可以为此类型DragEventArgs创建一个模拟。