2016-07-27 13 views
1

Ich habe eine Last von Tests von einem anderen Entwickler in Rhino Mocks geschrieben. Wir verwenden jetzt NSubstitute, also schreibe ich die Tests in NSubstitute neu. Ich habe alles neu geschrieben außer dem Is.Anything. Was ist die NSubstitute Art des Schreibens der Is.Anything im folgenden Beispiel? Ich habe die Rhino Mocks zuerst und das NSubstitute-Beispiel als zweites gezeigt.Was ist das NSubstitute Äquivalent von Rhino Mocks Is.Anything

Rhino Mocks:

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); 
     } 
    } 
} 

NSubstitute Beispiel:

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); 
     } 
    } 
} 

Antwort

1

ich die Antwort selbst gefunden ...

NSubstitute verwendet wird;

Namespace ClassUnderTest.Tests { Klasse TestExample_NSubstitute_Tests { privat const int ClassUnderTestLicenseFeatureID = 5106; privater 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.Any<OrchestrationInstrumentRuntimeServiceModel>(), 
      Arg.Any<long>(); 
     Assert.IsNotNull(classUnderTest); 
    } 
} 

}