我的测试类中有一个空值错误
[Test]
public void when_send_the_command_it_execute_correct_command_handler()
{
//Arrange
var commandBus = new CommandBus();
ICommand commandforsend=null;
IMetaData metaDataforsend=null;
Action<ICommand, IMetaData> fakeHandler = (fakecommand, fakemetadata) =>
{
commandforsend = fakecommand;
metaDataforsend = fakemetadata;
};
commandforsend和metaDataforsend值仍然为null 怎么会发生什么?帮帮我谢谢你!
答案 0 :(得分:2)
您正在定义Action
,但您永远不会调用它。您的代码等同于分配值但您不调用的单独方法,因此方法中的代码永远不会运行。
如果要执行fakeHandler
,则应在声明下方添加以下行:
fakeHandler(aFakeCommand, aFakeMetadata);`
如您所见,这与调用常规方法相同。您需要为两个参数(fakecommand
和fakemetadata
)提供值。
答案 1 :(得分:1)
由于您的代码没有执行fakeHandler
,这种行为是可以的,因为您刚刚声明了一个匿名方法而没有执行它。