Phi*_*ler 5 c# unit-testing moq
这有点难以描述,但我需要模拟/存根方法以根据输入返回T的实例.
消息签名如下所示:
T DoSomething<T>(Action<T> action);
Run Code Online (Sandbox Code Playgroud)
这是SUT中的代码:
var myEvent = _service.DoSomething<IMyEvent>(y =>
{
y.Property1 = localProperty1;
y.Property2 = localProperty2;
});
Run Code Online (Sandbox Code Playgroud)
以下是我的单元测试中的设置应该是什么样的:
service.Setup(x => x.DoSomething<IMyEvent>
(It.IsAny<Action<IMyEvent>>())).Returns((
(Action<IMyEvent> x) =>
{
return new MyEventFake //derives from IMyEvent
{
Property1 = x.Property1,
Property2 = x.Property2
};
}));
Run Code Online (Sandbox Code Playgroud)
这不会编译,因为x是一个Action.
我正在尝试做什么?
鉴于您的代码示例,您似乎可以创建一个新的MyEventFake,将其传递给操作,然后返回它:
service.Setup(x => x.DoSomething<IMyEvent>
(It.IsAny<Action<IMyEvent>>())).Returns((
(Action<IMyEvent> x) =>
{
IMyEvent myEvent = new MyEventFake();
x(myEvent);
return myEvent;
}));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
590 次 |
| 最近记录: |