2016-08-22 4 views
0

Ich versuche, einen NServiceBus 5 Saga Einheitstest.NServiceBus Komponententest schlägt mit unerwartetem Fehler fehl

Test.Initialize(); 

var dbMock = new Mock<IRepository>(); 
     dbMock.Setup(m => m.GetInstrumentIds(It.IsAny<string>())).Returns(new Collection<long> { 1 }); 

     var testingSaga = new MySaga(dbMock.Object); 
     testingSaga.Data = new MySagaData(); 

     Test.Saga(testingSaga) 
       .ExpectSend<UpdateCmd>(x => x.InstrumentId == 1 && x.ActionId == 12) 
       .When(s => s.Handle(startCommand)); 

Wenn ich den Test ausführen es mit einem unerwarteten Fehler-Fehler: Ausnahme beim Testamentsvollstrecker

'executor://mstestadapter/v1': Type UpdateCmd' in assembly MyAssembly, Version=1.0.4.0, Culture=neutral, PublicKeyToken=null' is not marked as serializable

Aufrufen Wenn ich MarshalByRefObject in dieser Art der Unit-Test funktioniert gut umzusetzen. Gibt es eine Lösung, um den Test auszuführen, ohne diese zusätzliche Klasse zu implementieren? Ich möchte MarshalByRefObject nicht nur für den Komponententest implementieren.

Antwort

0

Könnten Sie nur die UpdateCmd mit [Serializable] Attribut dekorieren?

Ich bin jedoch nicht in der Lage, die von Ihnen erwähnte Ausnahme zu reproduzieren. Wenn Sie es untersuchen möchten, können Sie Code zur Reproduktion des Problems freigeben?

+0

Können Sie Ihre Code-Reproduktion auf GitHub oder BitBucket teilen? –

Verwandte Themen