У меня есть множество тестов, написанных другим разработчиком в 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);
}
}
}