【发布时间】:2012-08-22 09:19:22
【问题描述】:
我在伪造我的班级时遇到问题:
A 类有一个方法:
protected virtual int method(int argument)
{
implementation
return int;
}
B 类扩展 A 类并覆盖方法:
protected override int method(int argument)
{
int result = base.method(argument);
implementation
return result + 1;
}
我需要模拟 B 类并测试 method 函数。问题是我需要避免调用base.method(argument) 函数。我只需要测试我的方法实现,并模拟该函数以返回一个 int。
我如何使用 FakeItEasy 做到这一点?还是其他模拟框架?
更新
解决的问题:
制作函数:
int MethodCaller(int argument)
{
base.method(argument);
}
并在我的 B 类“方法”函数中执行它。比模拟 MethodCaller 函数
【问题讨论】:
-
在这里使用 insted of inheretence 的封装可能会更好。
-
问题是“方法”函数被A类接口中的另一个公共函数调用,所以我不能改变它的签名
标签: c# mocking fakeiteasy