我正在使用附加的行为向我的代码添加拖放功能。 到目前为止,一切正常,但我的问题是当我想测试我的行为类时。
例如,其中一个行为类将类似于以下内容:
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)
{
...
}
}
我现在的问题是当我想为AssociatedObject_Drop方法创建一个单元测试时,我需要创建一个DragEventArgs对象,但这个类是密封的。
我的印象是我做错了什么.. 我的问题是,我应该测试我的行为类吗?行为与UI有关,通常不值得测试UI。我对吗? 也许我必须改变我的行为代码,使其更可测试?任何想法?
感谢您的帮助!
答案 0 :(得分:4)
我会重构代码并将任何业务逻辑从AssociatedObject_Drop
移出到它自己的函数中,然后为这些函数编写单元测试。
答案 1 :(得分:1)
即使其类被密封,您也可以创建一个对象。
您可以在单元测试中测试提升Drop()事件