Метод тестирования NUnit Ошибка при повышении события - PullRequest
0 голосов
/ 13 января 2019

Я хочу создать модульный тест для PublishDataProvider, упомянутого ниже. Как я новичок в модульном тесте. Я попробовал ниже метод, но я получаю ошибку. Я ошибаюсь, потому что пытаюсь. Может кто-нибудь, пожалуйста, направьте меня в правильном направлении.

Файл класса Код: PublishDataProvider.cs

    private DataRouter _dataRouter;
    public event EventHandler<PhysiologyData> DataUpdated;

    public PublishDataProvider(IUnityContainer container)
    {  
        _DataRouter = container.Resolve<DataRouter>(new ResolverOverride[] {
                        new ParameterOverride("clienttype",ClientType.VCG)});
        if(_physiologyDataRouter != null)
        {
            _dataRouter.ModuleDataReceived += OnModuleDataReceived;
        }
    }

    private void OnModuleDataReceived(ModuleData moduledata)
    {
        moduledata.DataType = DataType.ModuleData;
        DataUpdated?.Invoke(this, moduledata);
    }

Файл DataRouter.cs

public event ModuleDataEventHandler ModuleDataReceived;

 private void SendBatteryStatus(object sender, EventArgs e)
    {
     ModuleDataReceived?.Invoke(physmoduleinfo);
    }

Тестовый файл: Test.cs

    protected static IUnityContainer Container { get; set; }
    protected IDataProvider DataProvider { get; set; }
    private DataRouter _dataRouter;
    [Test]
    public void TestPublishDataProvider()
    {
        Container = new UnityContainer();   
        Container.LoadConfiguration();
       _dataRouter = MockRepository.GenerateMock<DataRouter>(ClientType.VCG, Container);
        Container.RegisterInstance(_dataRouter, new ContainerControlledLifetimeManager());
        MarkerDataBuffer MarkerDataBuffer = new MarkerDataBuffer();
        _physiologyDataRouter.Raise(x => x.MarkerDataReceived += null, MarkerDataBuffer);

        var wasCalled = false;
        _physiologyDataRouter.MarkerDataReceived += (e) => wasCalled = true;
        NUnit.Framework.Assert.IsTrue(wasCalled);

Ошибка:

System.InvalidOperationException: Неверный вызов, последний вызов был использован или не было сделано (убедитесь, что вы вызываете виртуальный (C #) / Overridable (VB) метод).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...