Я новичок в Nunit.please для написания тестового примера. это мой классНаписание тестов NUnit для метода
public CommandModule(ICommandFetcher fetcher,ICommandBus commandBus)
{
//Get["/"] = p =>
//{z
// return Response.AsText((string)Request.Form.Username);
//};
Post["/"] = parameters =>
{
var commandRequest = this.Bind<MessageEnvelope>();
var command = fetcher.FetchFrom(commandRequest);
commandBus.Send((ICommand)command, commandRequest.MetaData);
return HttpStatusCode.OK;
};
}
}
и я хочу, чтобы проверить этот метод проверки
commandBus.Send((ICommand)command, commandRequest.MetaData);
спасибо!
я попробовать это следующим образом
[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 browser = new Browser(with =>
{
with.Module<CommandModule>();
with.Dependency<ICommandBus>(fakeCommand);
});
var result = browser.Post("/", with =>
{
with.HttpRequest();
with.JsonBody(envelope);
});
A.CallTo(() => fakeCommand.Send(rCommand,envelope.MetaData)).MustHaveHappened();
но A.CallTo(() => fakeCommand.Send(rCommand,envelope.MetaData)).MustHaveHappened();
это имеет какой-то ошибки в значении rcommand
Вы должны написать тест перед тем, как написать функцию. Если у вас возникли проблемы с написанием теста, вы должны задать вопрос, действительно ли вы понимаете требования к реализации. Начните с вашей команды .Send() и спросите себя, что вы думаете, должно произойти. Это приведет к тому, что вы напишете единичный тест. Трудно, чтобы читатели SO предлагали единичный тест, потому что мы не знаем, что вы ожидаете. –
благодарит за ваш комментарий – user3044294