mar*_*set 7 c# unit-testing mocking fakeiteasy
我有以下界面:
public interface IOuputDestination
{
void Write(String s);
}
Run Code Online (Sandbox Code Playgroud)
在我的单元测试中,我这样模仿它:
var outputDestination = A.Fake<IOutputDestination>();
Run Code Online (Sandbox Code Playgroud)
我想要做的是拦截Write方法,以便它使用我在测试中定义的自定义实现.像这样的东西:
String output = "";
A.CallTo(() => outputDestination.Write(A<String>.Ignored)).Action(s => output += s);
//Is something like this even possible ? ----^
Run Code Online (Sandbox Code Playgroud)
这里的Action方法不存在,但我想要发生的是传入的任何参数都outputDestination.Write被重定向到我的自定义操作.这可能是使用FakeItEasy吗?如果没有,是否有另一个允许这种行为的模拟框架?
你可以与行为Invokes:
String output = "";
A.CallTo(() => outputDestination.Write(A<String>.Ignored))
.Invokes((string s) => output += s);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2289 次 |
| 最近记录: |