我从这里抓取了一些代码:http://web.archive.org/web/20090407010431/http://code.jesschadwick.com/Snippets/TestDatabase.cs。
对于我来说,这似乎是针对实际数据库设置测试的理想场景。
我刚接触单元测试、模拟等,到目前为止,我还不了解Initialize_executes_schema_if_provided测试失败的原因。
我已经尝试了几种代码变体,在尝试初始化之前和之后都将Expect()切换到Setup()和Verify(),但没有尝试初始化。
ExecuteQuery方法是虚拟的,所以在我看来,它应该是有效的--我不明白为什么它不能验证它是否被调用。
任何指点都会很有帮助。
谢谢大家。
发布于 2011-08-13 19:09:21
因为Initialize方法是虚拟的,所以Moq用它自己的方法实现(在本例中什么也不做)覆盖它。当调用db.Initialize()时,会调用Moq的实现,而不是被测试的类,这意味着对ExecuteQuery的调用永远不会发生,这也是测试失败的原因。
https://stackoverflow.com/questions/7004650
复制相似问题