我的問題如下:我如何測試一個模擬對象上是否調用了ICommand的Execute方法?測試ICommand是否被執行
我用下面的代碼:
var mockOperandVM = new Mock<UCOperandViewModel>();
mockOperandVM.Setup (x => x.EditCommand).Returns (new RelayCommand<String> (x => { }));
var toolbarTrayVM = new UCToolbarTrayViewModel (mockComponentsLocator.Object);
toolbarTrayVM.EditCommand.Execute ("Edit");
mockOperandVM.Verify (x => x.EditCommand.Execute ("Edit"), "EditCommand with 'Edit' parameter was not executed on the mock object.");
我必須在這裏指定我對UCOperandViewModel的EditCommand ICommand的也和我想要測試是否的ICommand被執行時,我打電話EditCommand.Execute在工具欄TrayVM上。
我在調用Verify時得到一個ArgumentException。它說:「給定參數的匹配構造函數在模擬類型上找不到。」
在此先感謝。
您能否提供更多的代碼?您如何使用ICommand,示例測試代碼以及您想要測試的內容。 – 2010-07-20 11:55:35
你正在使用哪個模擬框架(如果有的話)? – 2010-07-20 11:59:51
我正在使用Moq框架。 – Zoliqa 2010-07-20 12:03:32