0

我正在使用 MOQ 和 Effort 来模拟数据库以进行单元测试。我努力创建内存数据库并用运行时数据填充表,并使用 MOQ 来模拟存储过程。当我一次运行所有测试时,与努力相关的单元测试失败,当我重新运行失败的测试时,一切都是绿色的。当我尝试调试所有测试时,我得到了上述异常。

我在这里粘贴我的 DatabaseContext 代码。

         public DAL.IRapidDevOpsDBContext CreateContext()
    {
        base.CreateConnection();
        var context = new RapidDevOpsEntities(_connection);
        return context;
    }

     protected EntityConnection _connection;
    protected void CreateConnection()
    {
        if (_connection == null)
        {
            _connection = 

     EntityConnectionFactory.CreateTransient("name=MycontextName");
        }
    }

最小起订量代码片段:

       var mockStoredProcedure_Result = new 
         Mock<ObjectResult<getActivities_Result>>();

        var valueEnumerator = new getActivities_Result[] { 
       GetActivityDetailsList() }.ToList().GetEnumerator();

        mockStoredProcedure_Result.Setup(x => 
      x.GetEnumerator()).Returns(valueEnumerator);

        string expectedJson = "
    [{ActivityID:111,ActivityName:Test_Act,ActivityDetail:Test_Details}]";

        var dcc = new Mock<RapidDevOpsEntities>();


        dcc.Setup(x => x.getActivities(fromDate, toDate, "", 
        14158)).Returns(mockStoredProcedure_Result.Object);

        _activityRepository = new ActivityController(dcc.Object);

努力代码片段:

      [TestInitialize]
    public void SetupTest()
    {

        // create the test strategy.  This will initialise a new database
        _effortDatabaseStrategy = CreateTestStrategy();

        // add test data to the database instance
        _context = _effortDatabaseStrategy.CreateContext();

        // initialise the repositories we are testing
        _activityRepository = new ActivityController(_context);
    }

    protected IDatabaseContext CreateTestStrategy()
    {
        return new DatabaseContext();
    } 

单元测试方法里面
//Act ActivitiesTestData.AddTestData(_context); var 结果 = _activityRepository.ErrorDetailbyErrorId(errorId, timeZoneOffset);

4

0 回答 0