【发布时间】:2017-09-20 09:28:53
【问题描述】:
我有 void 方法:
this._dispatcher.PushAsync(handler, cmd);
执行后我改变了cmd的属性:
cmd.Result = userId;
在单元测试中执行void方法后如何设置属性值?
我正在尝试这样的事情:
_dispatcher = new Mock<IDispatcher>();
_a = new Mock<SaveUserCmd>();
_dispatcher
.Setup(r => r.PushAsync(_cmdHandler, this._cmd))
.Callback(() => _a.SetupProperty(y => y.Result == this._response));
但它显示...
(错误:表达式不是属性访问:
y => y.Result == this._response)。
SaveUserCmd:
public class SaveUserCmd
{
public string FirstName { get; set; }
public string LastName { get; set; }
public object Result { get; set; }
}
IDispatcher:
public interface IDispatcher
{
Task PushAsync<TCommand>(ICommandHandlerAsync<TCommand> commandHandlerAsync, TCommand message);
}
【问题讨论】:
-
“错了”是什么意思?有什么例外吗?意外行为?
标签: c# unit-testing .net-core moq xunit