0
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)コマンド、commandRequest.MetaData); ライン

こんにちは、nunit テストを使用してテストしようとすると、このメソッドには以前のエラーがあり、どうすれば修正できますか

これは私のテストクラスです

 [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();
    }
4

1 に答える 1