我在哪里可以找到MOQ的综合文档?我只是从嘲笑开始,我很难理解它。我已阅读http://code.google.com/p/moq/wiki/QuickStart处的所有链接,但似乎无法找到教程或温和的介绍。
我还简要介绍了Rhino Mocks,但发现它非常令人困惑。
是的 - 我读过Stephen Walthers的文章 - 非常有帮助。我也通过了链接。我似乎无法在 http://www.bestechvideos.com/2008/06/08/dimecasts-net-introduction-to-mocking-with-moq [断开链接]
具体来说,我正在尝试确定是否从模拟类中引发了一个事件。我无法获得QuickStarts页面上的事件编译示例。在google群组中,Daniel解释说CreateEventHandler只能处理EventHandler<TEventArgs>
类型的事件,但即使这样,我也无法获得要编译的代码。
更具体地说,我有一个实现INotifyChanged
的类。
public class Entity : INotifyChanged
{
public event PropertyChangingEventHandler PropertyChanging;
public int Id
{
get {return _id;}
set {
_id = value;
OnPropertyChanged("Id");
}
}
protected void OnPropertyChanged(string property)
{
if (PropertyChanged != null)
PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
}
etc .....
}
如何模拟该类以测试PropertyChanged
事件是否被触发?我无法将事件重写为public event EventHandler<PropertyChangedEventArgs>
因为我收到此错误:
错误1'CoreServices.Notifier'未实现接口成员System.ComponentModel.INotifyPropertyChanged.PropertyChanged'。 'CoreServices.Notifier.PropertyChanged'无法实现'System.ComponentModel.INotifyPropertyChanged.PropertyChanged',因为它没有匹配的返回类型'System.ComponentModel.PropertyChangedEventHandler'。
答案 0 :(得分:30)
Moq的最新文档现已在github wiki页面上提供:
https://github.com/Moq/moq4/wiki/Quickstart
以前他们使用的是Google Code。除了wiki和其他在线资源之外,还有来自Moq binary download的the Moq homepage中包含的Windows .CHM帮助文件格式的完整文档。
答案 1 :(得分:15)
你看过Introduction to Mocking with Moq了吗?这是使用Moq的介绍性概述,适用于那些不熟悉一般模拟或Moq框架本身的人。
答案 2 :(得分:4)
您是否在https://github.com/Moq/moq4/wiki/Quickstart阅读了链接的网页? 例如this one(可能已移至stephen walthers personal blog)
答案 3 :(得分:1)
你是吗?或者您是否正在尝试确定我正在尝试确定是否从被嘲笑的事件中引发了一个事件 类。
Id
属性是否已设置?请记住,默认情况下,模拟没有行为。它没有提出通知事件。
我会这样做:
const int ExpectedId = 123;
mockEntity.VerifySet(x => x.Id = ExpectedId);
这假设Entity实现了一个接口;一个例子:
public interface IKeyedEntity
{
int Id { get; set; }
}
那就是说,如果Entity
是POCO而没有任何有趣的行为,我既不会实现接口(INotifyChanged
除外)也不会嘲笑它。使用实际的Entity
实例进行测试(只是不要使用数据库)。保留对服务和复杂依赖项的模拟。
有关更多Moq功能,请参阅
Old style imperative mocks vs moq functional specifications 和 Mock.Of - how to specify behavior? (thread)。我还发布了自己的Moq v4 functional specifications示例。