我正在使用附加的行爲來爲我的代碼添加拖放功能。 到目前爲止,一切工作正常,但我的問題是當我想測試我的行爲類。wpf行爲單元測試
例如,行爲類中的一個會像下面這樣:
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對象,但這個類是封閉的。
我的印象是我做錯了什麼.. 我的問題是,我應該測試我的行爲類嗎?行爲與用戶界面相關,通常測試用戶界面並不值得。我對嗎? 也許我必須更改我的行爲代碼才能使其更易於測試?有任何想法嗎?
感謝您的幫助!
你知道我怎麼能創建一個對象,即使它的類是封閉的? –
一個密封的類不能被繼承,但你可以創建這個類的一個實例。請參閱http://msdn.microsoft.com/en-us/library/88c54tsw%28v=vs.71%29.aspx – Arseny
恩,對不起,新的DragEventArgs()不是密封的問題。我不能實例化它,因爲構造函數是內部的。 –