1
如果需要,您將如何使用Moq和Moles測試下面的代碼?用Moq和Moles測試非虛擬公共方法?
我想檢查「TestCommand.RaiseCanExecuteChanged()」命令是否在引發「SomeEvent」時調用一次。
難度在於RaiseCanExecuteChanged是Microsoft.Practices.Prism.Commands.DelegateCommandBase上的一個公共非虛方法,Moles引入了其他一些複雜性,其中之一就是它似乎無法只模擬一個方法而沒有一個返回值。
using Microsoft.Practices.Prism.Commands;
public class SomeEventClass
{
public event Action SomeEvent;
}
public class TestClass
{
public TestClass(SomeEventClass someEventClass)
{
TestCommand = new DelegateCommand(() => { /* do stuff */}, CanExecute);
someEventClass.SomeEvent +=() => TestCommand.RaiseCanExecuteChanged();
}
private bool CanExecute()
{
//Some logic
return true;
}
public DelegateCommand TestCommand { get; private set; }
}
你是對的,只是一個痣新手的錯誤。現在如何讓鼴鼠一起玩,但這是另一個問題。 – SDK 2012-08-10 08:51:15