我正在尝试对处理一些复杂对象的复杂方法执行测试操作。因为它使用SessionManager类,它是一个具有属性的客户类,并处理会话上下文的东西。
我有以下代码,我试图模拟sessionstate并覆盖从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
请帮助我,谢谢。
答案 0 :(得分:0)
没关系,我已经改变了我试图存根到可覆盖的属性并直接设置值来解决这个问题。