【发布时间】:2014-07-28 07:51:08
【问题描述】:
我有如下界面:
public interface IFoo
{
int Prop1 { get; set; }
string Prop2 { get; set; }
string Method1();
string Method2();
}
这是一个实现:
public class FooImplementation : IFoo
{
public override int Prop1 { ... }
public override string Prop2 { ... }
public override string Method1() { ... }
public override string Method2() { ... }
}
我想模拟Prop2 和Method2,对于其余的属性/方法,我想在实现中调用相应的属性/方法。除了描述性地为每个属性/方法提及Mock.Setup(..),是否有直接的方法来实现这一点?
我可以选择性地模拟属性和方法并将其余部分重定向到实现吗?
【问题讨论】:
-
new Mock<FooImplementation>()不起作用吗? -
没有。我的
FooImplementation方法不是virtual。所以我不能嘲笑他们中的任何一个。 -
这无关,但在您的示例中,Foo 被声明为一个接口。然而,名称和实现表明它是一个类。这是一个错误吗?
-
Foo是一个接口。FooImplementation是一个类。 -
应该是
IFoo。
标签: c# unit-testing moq xunit xunit.net