2015-12-31 2 views
0

Могу ли я получить образец того, как проверить, опубликовано ли событие из данного обработчика или нет.Протестировать ли событие из обработчика

  var cmd = new Catalogue() 
      { 
       CatalogueCode = "", 
       CatalogueType = "", 
       CustomerSegmentCode = "", 
       DisplayName = "", 
       EffectiveDate = null, 
       Products = null 
      }; 
      Test.Handler(bus => new CatalogueAddedCommandHandler(bus)) 
       .ExpectPublish<ICatalogue>(e => e.CatalogueCode == cmd.CatalogueCode).OnMessage(cmd); 

Когда я отлаживаю тестовый пример, он показывает исключение. Интерфейс не найден в Test.Handler.

+0

Вы можете поделиться с нами кодом обработчика сообщений? – Sabacc

+0

Вы хотите проверить, было ли событие опубликовано вообще? Или конкретно от одного обработчика? –

+0

Необходимо проверить, опубликован ли он от одного обработчика или нет –

ответ

0

Я думаю, вам нужно позвонить Test.Initialize();

Вы можете найти документацию на the Particular docs website

UPDATE:

using NServiceBus; 
    using NServiceBus.Testing; 
    using NUnit.Framework; 

    [TestFixture] 
    public class Tests 
    { 

     [Test] 
     public void Run() 
     { 
      Test.Initialize(c => c.Conventions().DefiningEventsAs(t => t == typeof (ICatalogue))); 

      var cmd = new Catalogue() 
      { 
       CatalogueCode = "TEST" 
      }; 
      Test.Handler<CatalogueAddedCommandHandler>() 
       .ExpectPublish<ICatalogue>(e => e.CatalogueCode == cmd.CatalogueCode) 
       .OnMessage(cmd); 

     } 
    } 

    public interface ICatalogue 
    { 
     string CatalogueCode { get; set; } 
    } 

    public class Catalogue 
    { 
     public string CatalogueCode { get; set; } 
    } 

    public class CatalogueEvent : ICatalogue 
    { 
     public string CatalogueCode { get; set; } 
    } 

    public class CatalogueAddedCommandHandler : IHandleMessages<Catalogue> 
    { 
     public IBus Bus { get; set; } 

     public void Handle(Catalogue message) 
     { 
      Bus.Publish<ICatalogue>(e => e.CatalogueCode = message.CatalogueCode); 
     } 
    } 

ли эта помощь?

+0

Я пробовал с методом Test.Initialize(), но не работал для меня. Я хочу проверить публикацию сообщения, а не ответ. –

Смежные вопросы