public CommandModule(ICommandFetcher fetcher,ICommandBus commandBus)
{
Post["/"] = parameters =>
{
var commandRequest = this.Bind<MessageEnvelope>();
var command = fetcher.FetchFrom(commandRequest);
commandBus.Send((ICommand)command, commandRequest.MetaData);
return HttpStatusCode.OK;
};
}
错误-->无法将“Castle.Proxies.ObjectProxy_2”类型的对象转换为“Vetserve.Messages.Shared.ICommand”类型。
在 commandBus.Send((ICommand)command, commandRequest.MetaData); 线
嗨,当我尝试使用 nunit test 进行测试时,此方法有先前的错误,我该如何解决
这是我的测试课
[Test]
public void whern_reseiving_command_it_sent_to_the_command_bus()
{
var rCommand = new DummyCommand() {SomeProp = 2};
var serializedCommand = JsonConvert.SerializeObject(rCommand);
var envelope = new MessageEnvelope()
{
MetaData = new MetaData() {MessageType = "DummyCommand", MessageTypeVersion = 1},
MessageData = serializedCommand
};
var fakeCommand = A.Fake<ICommandBus>();
var fakeCxxommand = A.Fake<ICommandFetcher>();
var browser = new Browser(with =>
{
with.Module<CommandModule>();
with.Dependency<ICommandBus>(fakeCommand);
with.Dependency<ICommandFetcher>(fakeCxxommand);
});
var result = browser.Post("/", with =>
{
with.HttpRequest();
with.JsonBody(envelope);
});
A.CallTo(() => fakeCommand.Send(A<ICommand>.Ignored , envelope.MetaData)).MustHaveHappened();
// A.CallTo(() => fakeCommand.Send(A<ICommand>.Ignored, A<MetaData>._)).MustHaveHappened();
}