2016-07-27 5 views
1

Rhino Mockの別の開発者が作成したテストがあります。 NS substituteでテストを書き直していますが、NSubstituteを使用しています。私はIs.Anythingを除いて、何かを書き直しました。 ISを書き込むNS代理の方法は何ですか?以下の例では何がありますか?私はRhino Mocksを最初に示し、NS substituteは第二を試してみました。Rhino Mocks Isと同等のNS代理店は何ですか.Anything

Rhinoのモック:

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例:私は答えを自分で見つけ

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

答えて

1

... NSubstituteを使用して

名前空間ClassUnderTest.Tests {クラスTestExample_NSubstitute_Tests {民間のconst int型ClassUnderTestLicenseFeatureID = 5106。 プライベートIMessenger messageProvider; プライベート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); 
    } 
} 

}

関連する問題