Что такое NSubstitute эквивалент Rhino Mocks Is.Anything

У меня есть множество тестов, написанных другим разработчиком в Rhino Mocks. Сейчас мы используем NSubstitute, поэтому я переписываю тесты в NSubstitute. Я переписал все, кроме Is.Anything. Как NSubstitute пишет Is.Anything в приведенном ниже примере? Сначала я показал Rhino Mocks, а затем NSubstitute.

Насмешки носорога:

using Rhino.Mocks;

namespace ClassUnderTest.Tests
{
    class TestExample_NSubstitute_Tests
    {
        private const int ClassUnderTestLicenseFeatureID = 5106;
        private IMessenger messageProvider;
        private IEventAggregator eventAggregator;

        private ClassUnderTest BuildValidClassUnderTestObject()
        {
            ClassUnderTest newClassUnderTest = new ClassUnderTest(
                    eventAggregator,
                    messageProvider);
            return newClassUnderTest;
        }

        [TestMethod]
        public void ClassUnderTestBroadcastInstrumentState_NoArgs_BaseClassMethodCall()
        {
            //ARRANGE
            ClassUnderTest classUnderTest = BuildValidClassUnderTestObject();

            //ACT
            classUnderTest.BroadcastState();

            //ASSERT
            messageProvider.AssertWasCalled(a => a.ClassToDoWork(
                Arg<OrchestrationInstrumentRuntimeServiceModel>.Is.Anything, 
                Arg<long>.Is.Anything));
            Assert.IsNotNull(classUnderTest);
        }
    }
}

NПодстановочный пример:

using NSubstitute;

namespace ClassUnderTest.Tests
{
    class TestExample_NSubstitute_Tests
    {
        private const int ClassUnderTestLicenseFeatureID = 5106;
        private IMessenger messageProvider;
        private IEventAggregator eventAggregator;

        private ClassUnderTest BuildValidClassUnderTestObject()
        {
            ClassUnderTest newClassUnderTest = new ClassUnderTest(
                    eventAggregator,
                    messageProvider);
            return newClassUnderTest;
        }

        [TestMethod]
        public void ClassUnderTestBroadcastInstrumentState_NoArgs_BaseClassMethodCall()
        {
            //ARRANGE
            ClassUnderTest classUnderTest = BuildValidClassUnderTestObject();

            //ACT
            classUnderTest.BroadcastState();

            //ASSERT
            messageProvider.Received().ClassToDoWork(
                Arg<OrchestrationInstrumentRuntimeServiceModel>.Is.Anything,//How do I re-write Is.Anything in NSubstitute?
                Arg<long>.Is.Anything);//How do I re-write Is.Anything in NSubstitute?
            Assert.IsNotNull(classUnderTest);
        }
    }
}

person Ewan    schedule 27.07.2016    source источник


Ответы (1)


Сам нашел ответ...

использование NSubstitute;

пространство имен ClassUnderTest.Tests { class TestExample_NSubstitute_Tests { private const int ClassUnderTestLicenseFeatureID = 5106; частный поставщик сообщений IMessenger; частный IEventAggregator eventAggregator;

    private ClassUnderTest BuildValidClassUnderTestObject()
    {
        ClassUnderTest newClassUnderTest = new ClassUnderTest(
                eventAggregator,
                messageProvider);
        return newClassUnderTest;
    }

    [TestMethod]
    public void ClassUnderTestBroadcastInstrumentState_NoArgs_BaseClassMethodCall()
    {
        //ARRANGE
        ClassUnderTest classUnderTest = BuildValidClassUnderTestObject();

        //ACT
        classUnderTest.BroadcastState();

        //ASSERT
        messageProvider.Received().ClassToDoWork(
            Arg.Any<OrchestrationInstrumentRuntimeServiceModel>(),
            Arg.Any<long>();
        Assert.IsNotNull(classUnderTest);
    }
}

}

person Ewan    schedule 27.07.2016