2
我是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();
它在r命令值某种错误
在编写函数之前,您应该能够编写测试。如果您在编写测试时遇到困难,您必须质疑您是否真正理解实施的要求。从你的命令开始。发送()并问自己你认为应该发生什么。这会导致你写单元测试。 SO读者很难提出单元测试,因为我们不知道你期望发生什么。 –
感谢您的评论 – user3044294