我的团队已经作出的决定最近使用的最低采购量作为我们嘲讽的框架,用其巨大的灵活性和高度可读的语法。因为我们是新来的,我跌跌撞撞上了什么似乎是简单的问题--搜索,(在这里,等等。) 找到大量的讨论其他的细微差别的最低采购量,但不一定是什么我以后,少数似乎相关的问题已经变成红鲱鱼.

我们正在测试一类有一个外部的依赖(亚马逊SimpleDb要精确),但不希望我们的测试结一个具有实时连接。一个特别的方法:

  • 适用一些"业务"的逻辑
  • 如果适当的话,援引一个叫出来香港康体发展局,通过一个供应商,我们已经建立,让我们叫它 SaveItem()

我想单元的测试这个这样的,我们设置的上下文需要,并确保 SaveItem() 援引,但在一个方式, SaveItem() 真的不是援用(因为A)提供者康是一种嘲笑,是不充分的水合并可能会炸弹和B)我不想要必须支付交易的数百和数千倍)。

在处理方法,返回一个价值,这是微不足道的。

mockDb.Setup(d => d.GiveMeSomething()).Returns("Foo");

在这种情况下,我的大纲以上的虽然我的"SaveItem()"方法是无效的,因此选择使用最低采购量的 Returns() 方法不可用。虽然我可以设置一个回来验证 SaveItem() 被调用,我不能但是似乎得到它实际上不做任何事情。

幼稚/抱有希望,我认为以下会的工作,但它看来还调用的方法:

mockDb.Setup(d => d.SaveItem(It.IsAny<object>()));

所以万美元的问题:什么是最低采购量的下列虚构的代码?

mockDb.Setup(d => d.SaveItem(It.IsAny<object>())).STOP_RIGHT_HERE();
有帮助吗?

解决方案

如果的 SaveItem() 方法是虚拟的或抽象的,而你却不设置 Callbase = true, ,那么该方法应当重新实现做什么的嘲笑。

你应该能够做到:

mockDb.Setup(d => d.SaveItem(It.IsAny<object>())).Verifiable();

...  test here ...

mockDb.Verify();
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top