第一次使用Moqer,Verify()语法?

时间:2011-08-10 00:32:40

标签: unit-testing moq

我从这里抓了一些代码:http://web.archive.org/web/20090407010431/http://code.jesschadwick.com/Snippets/TestDatabase.cs

这似乎是我对实际数据库设置测试的理想方案。

我是单元测试,模拟等的新手,到目前为止,我还没有理解为什么Initialize_executes_schema_if_provided测试失败。

我尝试了代码的一些变体,在尝试初始化之前和之后都将Expect()切换为Setup()Verify(),但没有快乐。

ExecuteQuery方法是虚拟的,因此应该尽可能地工作 - 我无法理解为什么它无法验证它是否被调用。

任何指针都会非常有用。

谢谢大家。

1 个答案:

答案 0 :(得分:1)

因为Initialize方法是虚拟的,所以Moq用它自己的方法实现(在这种情况下什么都不做)覆盖它。当调用db.Initialize()时,调用Moq的实现,而不是测试中的类,这意味着对ExecuteQuery的调用永远不会发生,这就是测试失败的原因。