.net 使用rhinomock进行单元测试 [测试] public void OnActionExecuting_Always_Call_CheckStatisticationAuthorization() { //安排 var_ActionExecutingContext=GetActionExecutingContext(); var_StatisticController=MockRepository.GenerateStub(); _StatisticController.DataContext=fDataContext; //表演 _StatisticController.OnActionExecuting(\u ActionExecutingContext,false); //断言 _StatisticController.AssertWasCalled(aStatisticController=> aStatisticController.CheckStatisticationAuthorization(_ActionExecutingContext)); }

.net 使用rhinomock进行单元测试 [测试] public void OnActionExecuting_Always_Call_CheckStatisticationAuthorization() { //安排 var_ActionExecutingContext=GetActionExecutingContext(); var_StatisticController=MockRepository.GenerateStub(); _StatisticController.DataContext=fDataContext; //表演 _StatisticController.OnActionExecuting(\u ActionExecutingContext,false); //断言 _StatisticController.AssertWasCalled(aStatisticController=> aStatisticController.CheckStatisticationAuthorization(_ActionExecutingContext)); },.net,unit-testing,rhino-mocks,.net,Unit Testing,Rhino Mocks,我一直从CheckStatisticationAuthorization获取NullReferenceException StatisticController.DataContext为null。有什么问题?谢谢。尝试为DataContext属性指定PropertyBehavior(): [Test] public void OnActionExecuting_Always_Call_CheckStatisticActionAuthorization() { //Arrange

我一直从CheckStatisticationAuthorization获取NullReferenceException StatisticController.DataContext为null。有什么问题?谢谢。

尝试为DataContext属性指定
PropertyBehavior()

[Test]
public void OnActionExecuting_Always_Call_CheckStatisticActionAuthorization()
{
    //Arrange
    var _ActionExecutingContext = GetActionExecutingContext();
    var _StatisticController = MockRepository.GenerateStub<StatisticsController>();

    _StatisticController.DataContext = fDataContext;

    //Act
    _StatisticController.OnActionExecuting(_ActionExecutingContext, false);

    //Assert
    _StatisticController.AssertWasCalled(aStatisticController =>
          aStatisticController.CheckStatisticActionAuthorization(_ActionExecutingContext));
}
var statisticController=MockRepository.GenerateStub();
Expect(m=>m.DataContext).PropertyBehavior();
statisticController.DataContext=fDataContext;
//检查它是否设置正确
AreEqual(fDataContext,statisticController.DataContext);
Assert.IsNotNull(statisticController.DataContext);
//表演
// ...
//断言
// ..

有关更多详细信息,请参见
fDataContext
来自何处?您没有在提供的示例中创建它。
StatisticsController
的相关实现细节是什么?
var statisticController = MockRepository.GenerateStub<StatisticsController>(); 
statisticController.Expect(m => m.DataContext).PropertyBehavior();
statisticController.DataContext = fDataContext;

// check whether it set properly
Assert.AreEqual(fDataContext, statisticController.DataContext);
Assert.IsNotNull(statisticController.DataContext);

// Act
// ...

// Assert
// ..