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