4
我試圖測試以下出版代碼(類和特性被調整,例如,目的):ExpectPublish失敗發佈時(PARAMS T []消息)包含一個以上的消息
public void PublishMessages(List<SomeDummyClass> shareRegistrationResult)
{
var failedMessages = shareRegistrationResult
.Where(c => !c.WasRegistered)
.Select(c => CreateNotRegisteredMessageInstance(c.String1, c.String2)).ToArray();
_bus.Publish(failedMessages);
}
private IMyMessage CreateNotRegisteredMessageInstance(string string1, string string2)
{
return _bus.CreateInstance<IMyMessage>(message =>
{
message.String1 = string1;
message.String2 = string2;
});
}
的測試碼(改變以匹配虛設消息)
NServiceBus.Testing.Test.Handler(bus => new Publisher()
.ExpectPublish<IMyMessage>(message => message.String1 == "Hello" && message.String2 == "World")
.ExpectPublish<IMyMessage>(message => message.String1 == "Foo" && message.String2 == "Bar");
這只是正常如果failedMessages
陣列只包含一個消息,但失敗,當陣列具有多於一個消息以下錯誤:
Rhino.Mocks.Exceptions.ExpectationViolationException : IBus.Publish(callback method: <>c__DisplayClass1c`1.<ExpectPublish>b__1b); Expected #1, Actual #0.
IBus.Publish(callback method: <>c__DisplayClass1c`1.<ExpectPublish>b__1b); Expected #1, Actual #0.
當在一個發佈中測試多個郵件時如何使用ExpectPublish測試(或其他)的任何想法?
不確定,我怎麼錯過了這一點。我沒有搜索NServiceBus的issuelog,但它幾乎是我在檢查NServiceBus.Testing項目的源代碼後得出的結論... –
這個錯誤最近被添加了,所以可能是爲什麼你錯過了它:) –