【发布时间】:2018-09-07 19:34:44
【问题描述】:
我在网上浏览 Nunit 测试用例中的模拟基类成员,但没有运气,最后决定将这个废料堆到溢出社区。p>
下面的代码 sn-p 在我的应用程序中有场景。我将为 BankIntegrationController 类编写单元测试,我想为 IsValid 属性和 Print 方法制作存根数据或模拟。
框架:最小起订量,Nunit
public class CController : IController
{
public bool IsValid {get;set;}
public string Print()
{
return // some stuff here;
}
}
public class BankIntegrationController : CController, IBankIntegration
{
public object Show()
{
if(this.IsValid)
{
var somevar = this.Print();
}
return; //some object
}
}
【问题讨论】:
-
这只是一个简单的属性——为什么还要嘲笑它呢?只需将一个测试的值设置为 true,将另一个测试设置为 false。
-
@DaisyShipton 因为如果他们在模拟控制器接口,就没有具体的实现。
-
@OwenPauling:但这不是描述的情况:“我要为 BankIntegrationController 类编写单元测试”——是具体实现。
-
@DaisyShipton 公平点。在这种情况下,他们根本不应该在这里使用 Moq。所以当他们试图模拟 IBankIntegration 时,我接受了这个问题。
-
@OwenPauling:我同意他们不应该在这里使用嘲笑,因此我的评论。但我认为这个问题已经很清楚了。