接口单元测试案例

 接口:

        /// <summary>
        /// 获取“我的收藏”页面数据-H5
        /// </summary>
        [HttpGet]
        [Route("api/UserCollectQuestion/ExamPaperListForH5")]
        public ResponseMessage GetCollectExamPaperListForH5([FromUri]ReqGetCollectExamPaperListForH5 req)
        {
            var response = new RespGetCollectExamPaperListForH5();
            var result = new ResponseMessage()
            {
                Msg = false,
                Message = CommonMessage.GetFailure,
                ResultCode = (int)EnumsHelper.MessageResultCode.OperateError,
                Info = response
            };
            if (req == null)
            {
                return result;
            }

            if (req.Token.Equals(CommonConst.TokenForVisitor))
            {
                result.Msg = true;
                result.Message = CommonMessage.GetSuccess;
                result.ResultCode = (int)EnumsHelper.MessageResultCode.OperateSuccess;
                return result;
            }

            var userId = RedisInfoHelper.GetUserIdByToken(req.Token);
            var paperList = UserCollectQuestionService.GetCollectExamPaperListForH5(userId, req.TrainingInstitutionId, req.ClassId, req.PaperType);
            MakeGetCollectExamPaperListForH5(response, paperList);

            result.Msg = true;
            result.Message = CommonMessage.GetSuccess;
            result.ResultCode = (int)EnumsHelper.MessageResultCode.OperateSuccess;
            return result;
        }

        /// <summary>
        /// 构造获取“我的收藏”页面数据
        /// </summary>
        /// <param name="response"></param>
        /// <param name="paperList"></param>
        private void MakeGetCollectExamPaperListForH5(RespGetCollectExamPaperListForH5 response, List<MGetCollectExamPaperListForH5> paperList)
        {
            if (paperList.Any())
            {
                foreach (var item in paperList)
                {
                    var collectCourse = response.CourseList.FirstOrDefault(n => n.CourseId == item.CourseId);
                    if (collectCourse == null)
                    {
                        collectCourse = new CollectCourse();
                        collectCourse.CourseId = item.CourseId;
                        collectCourse.CourseName = item.CourseName;
                        collectCourse.CollectExamPaperList = new List<CollectExamPaper>();
                        response.CourseList.Add(collectCourse);
                    }

                    var collectExamPaper = new CollectExamPaper();
                    collectExamPaper.PaperId = item.PaperId;
                    collectExamPaper.PaperName = item.PaperName;
                    collectExamPaper.CollectQuestionCount = item.CollectQuestionCount;
                    collectCourse.CollectExamPaperList.Add(collectExamPaper);
                }
            }
        }

接口单元测试

#region GetCollectExamPaperList
1、
        /// <summary>
        /// GetCollectExamPaperList 传空参数 para = null
        /// panxiaoming 20190110 添加
        /// </summary>
        [TestMethod()]
        public void GetCollectExamPaperList_WithNullParam_ExceptFalseResponse()
        {
            //解决跨域报错问题  
            HttpContext.Current = new HttpContext(new HttpRequest(null, TestCommonVariablesHelper.TEST_HTTP_REQUEST_URL, null),
                new HttpResponse(null));
            //Arrange:1 设置请求参数
            ReqGetCollectExamPaperList reqGetUserTestPaperListModel = null;

            //Arrange:2 期望数据/期望返回数据
            var respStrExpected =
                JsonHelper.toJson(new ResponseMessage()
                {
                    Msg = false,
                    Message = CommonMessage.GetFailure,
                    ResultCode = (int)EnumsHelper.MessageResultCode.OperateError,
                    Info = new RespGetUserTestPaperList()
                }).Content.ReadAsStringAsync().Result;
            var mockMGetUserTestPaperList = new List<MGetUserTestPaperList>();
            //Arrange:3 mockDB&act
            var examControllerClass = new UserCollectQuestionController();
            mockItQuestionService
                .Setup(x => x.GetUserCollectTestPaperList(It.IsAny<int>(), It.IsAny<int>(), It.IsAny<int>(), It.IsAny<int>(), It.IsAny<int>(), It.IsAny<int>(), It.IsAny<int>()))
                .Returns(mockMGetUserTestPaperList);
            examControllerClass.QuestionService = mockItQuestionService.Object;
            var execResult =
                JsonHelper.toJson(examControllerClass.GetCollectExamPaperList(reqGetUserTestPaperListModel))
                    .Content.ReadAsStringAsync()
                    .Result;
            //Arrange:4 Assert
            Assert.AreEqual(respStrExpected, execResult, true);
        }
2、
        /// <summary>
        /// GetCollectExamPaperList 传空参数 para = new ReqGetUserTestPaperList()
        /// panxiaoming 20190110 添加
        /// </summary>
        [TestMethod()]
        public void GetCollectExamPaperList_WithEmptyParam_ExceptTrueResponse()
        {
            //解决跨域报错问题  
            HttpContext.Current = new HttpContext(new HttpRequest(null, TestCommonVariablesHelper.TEST_HTTP_REQUEST_URL, null),
                new HttpResponse(null));
            //Arrange:1 设置请求参数
            var reqGetUserTestPaperListModel = new ReqGetCollectExamPaperList();

            //Arrange:2 期望数据/期望返回数据
            var respStrExpected =
                JsonHelper.toJson(new ResponseMessage()
                {
                    Msg = true,
                    Message = CommonMessage.GetSuccess,
                    ResultCode = (int)EnumsHelper.MessageResultCode.OperateSuccess,
                    Info = new RespGetUserTestPaperList()
                }).Content.ReadAsStringAsync().Result;
            var mockMGetTestPaperDetail = new List<MGetUserTestPaperList>();
            //Arrange:3 mockDB&act
            var examControllerClass = new UserCollectQuestionController();
            mockItQuestionService
                .Setup(x => x.GetUserCollectTestPaperList(It.IsAny<int>(), It.IsAny<int>(), It.IsAny<int>(), It.IsAny<int>(), It.IsAny<int>(), It.IsAny<int>(), It.IsAny<int>()))
                .Returns(mockMGetTestPaperDetail);
            examControllerClass.QuestionService = mockItQuestionService.Object;
            var execResult =
                JsonHelper.toJson(examControllerClass.GetCollectExamPaperList(reqGetUserTestPaperListModel))
                    .Content.ReadAsStringAsync()
                    .Result;
            //Arrange:4 Assert
            Assert.AreEqual(respStrExpected, execResult, true);
        }
3、
        /// <summary>
        /// GetCollectExamPaperList 正常传参
        /// panxiaoming 20190110 添加
        /// </summary>
        [TestMethod()]
        public void GetCollectExamPaperList_WithNormalParamForCollectionType_ExceptTrueResponse()
        {
            //解决跨域报错问题  
            HttpContext.Current = new HttpContext(new HttpRequest(null, TestCommonVariablesHelper.TEST_HTTP_REQUEST_URL, null),
                new HttpResponse(null));
            //Arrange:1 设置请求参数
            var reqGetUserTestPaperListModel = new ReqGetCollectExamPaperList
            {
                Token = String.Empty,
                PaperType = 1,
                CourseId = TestCommonVariablesHelper.CourseId0,
                Page = TestCommonVariablesHelper.Page0,
                PageSize = TestCommonVariablesHelper.PageSize10
            };

            //Arrange:2 期望数据/期望返回数据
            var respStrExpected =
                JsonHelper.toJson(new ResponseMessage()
                {
                    Msg = true,
                    Message = CommonMessage.GetSuccess,
                    ResultCode = (int)EnumsHelper.MessageResultCode.OperateSuccess,
                    Info = new RespGetUserTestPaperList()
                }).Content.ReadAsStringAsync().Result;
            var mockMGetTestPaperDetail = new List<MGetUserTestPaperList>();
            //Arrange:3 mockDB&act
            var examControllerClass = new UserCollectQuestionController();
            mockItQuestionService
                .Setup(x => x.GetUserCollectTestPaperList(It.IsAny<int>(), It.IsAny<int>(), It.IsAny<int>(), It.IsAny<int>(), It.IsAny<int>(), It.IsAny<int>(), It.IsAny<int>()))
                .Returns(mockMGetTestPaperDetail);
            examControllerClass.QuestionService = mockItQuestionService.Object;
            var execResult =
                JsonHelper.toJson(examControllerClass.GetCollectExamPaperList(reqGetUserTestPaperListModel))
                    .Content.ReadAsStringAsync()
                    .Result;
            //Arrange:4 Assert
            Assert.AreEqual(respStrExpected, execResult, true);
        }

        #endregion

posted on 2020-07-16 09:24  Cinderella露  阅读(270)  评论(0)    收藏  举报

导航