【问题标题】:How can I set the returned value of this Stub object?如何设置此 Stub 对象的返回值?
【发布时间】:2011-10-07 07:14:03
【问题描述】:
public interface IMyINterface
{
    int GetMeSomeInteger();
    Toy GetMeAToy(string toyName);
}


[TestMethod]
public void PlayWithANumber_RecievesInteger_DoRightJob()
{

    IMyINterface stub = MockRepository.GenerateStub<IMyINterface>();

    // HOW CAN I? :
    // Instruct GetMeSomeIngeter() method in stub to return 5

    // HOW CAN I? :
    // Instruct GetMeAToy(string toyName) method in stub to return
      //new Toy() {ToyName = "Gizmo", Code = "0989"}

      var five = stub.GetMeSomeInteger();
      var gizmo = GetMeAToy("Gizmo");
      Assert.IsTrue(DoSomething(five, gizmo) == 100 );    
}

【问题讨论】:

    标签: c# .net unit-testing rhino-mocks arrange-act-assert


    【解决方案1】:

    场景 1:

    var myInterface = MockRepository.GenerateStub<IMyINterface>();
    myInterface.Stub(x => x.GetMeSomeIngeter()).Return(5);
    

    场景 2:

    var myInterface = MockRepository.GenerateStub<IMyINterface>();
    myInterface.Stub(x => x.GetMeAToy("Gizmo")).Return(new Toy() {ToyName = "Gizmo", Code = "0989"});
    

    【讨论】:

    • 但我不需要模拟;我需要一个存根。此外,您认为我们可以在不使用 Record 的情况下解决这个问题吗?我的意思是 Arrange-Assert-Act 方法?
    • 我只描述了安排步骤。您还需要调用您的成员(这将是 Act),然后检查返回值(将是 Assert)。
    • 我只留下了最新的样本。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-12-15
    • 1970-01-01
    • 2011-12-05
    • 1970-01-01
    • 2014-05-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多