【问题标题】:Mocking session state with Rhino mocks使用 Rhino 模拟模拟会话状态
【发布时间】:2015-04-01 08:56:24
【问题描述】:

我正在尝试对处理一些复杂对象的复杂方法执行测试操作。因为它使用 SessionManager 类,这是一个具有属性的客户类并处理 Session Context 的东西。

我有下面的代码,我试图在其中模拟会话状态并覆盖从 SessionManager 类返回的 PromotionDTO 属性返回的值。

   SessionManager sessionStub = MockRepository.GenerateStub<SessionManager>( MockObjectFactory.GetMockHttpSessionState());


       var dto = new PromotionParamsDTO(store.DefaultAdCode, membershiptypefromResult.membershipType.Id, offerCodes, true);


        sessionStub.Stub(x => x.PromotionDTO).Return(dto);

我在尝试存根值的最后一行遇到以下错误

无效调用,已使用最后一次调用或未进行任何调用(确保您调用的是虚拟 (C#) / 可覆盖 (VB) 遇到

  at Rhino.Mocks.LastCall.GetOptions[T]()
  at Rhino.Mocks.RhinoMocksExtensions.Expect[T,R](T mock, Function`2 action)
  at Rhino.Mocks.RhinoMocksExtensions.Stub[T,R](T mock, Function`2 action)
  at Bluefield.Test.MembershipPromo.MembershipInfoServicesTest.CheckAndRunPromoForMembershipTypeTest()

我从这里使用 MockObjectFactory 实现 http://codeverge.com/asp.net.free-for-all/mocking-httpcontext-object/36423

请帮帮我,谢谢。

【问题讨论】:

    标签: c# visual-studio-2010 unit-testing integration-testing rhino-mocks


    【解决方案1】:

    没关系,我已将我尝试存根的属性更改为可覆盖并直接设置值以解决此问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-01-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多