通过传递模型来测试HTTPPOST请求的最佳方法是什么?

时间:2017-10-06 18:55:17

标签: asp.net-mvc dependency-injection http-post

我使用Castle Windsor作为DI并使用reposity来访问和实现数据层。 由于我已经在我的repo中实现了所有数据访问层,现在是时候在我的API控制器中调用这些方法了。所以我有'getAllReportsByClient方法'和'CreateReport'POST方法。因此,为了测试某些方法是否正常工作而没有实际实现视图和AJAX调用,如何使用“创建报告”方法插入样本数据?

回购方法如下:

public void CreateReport(TReportHeaderModel model)

        {

            using (var connection = new TReportEntitiesConnection())
            {

                connection.THeader.Add(new THeader()
                {

                    ClientID=model.ClientID,
                    ID=model.ID,
                    THeaderTitle=model.THeaderTitle,
                    RowNumber=model.RowNumber

                });


                foreach (var d in model.TReports)
                {
                    connection.TReport.Add(new TReport()
                    {

                        ID=d.ID,
                        TReportName=d.TReportName,
                        URL=d.URL,
                        RowNumber=d.RowNumber,



                    });

                }

                connection.SaveChanges();


            }



                throw new NotImplementedException();
        }

以下是Controller中的HTTPPOST createReport调用:

    [HttpPost]
    public ActionResultModel CreateReport([FromBody] TReportHeaderModel model) 

    {


        try
        {
            _tReportingService.CreateReport(model);

            return new ActionResultModel()   //return void, must not be followed by object expression
            {
                Success = true,
                Message = "Report Successfully Created."
            };

        }


        catch (Exception ex)

        {
            return new ActionResultModel()
            {
                Success = false,
                Message = "Report not created.",
                Obj=ex.Message

            };


        }


    }

1 个答案:

答案 0 :(得分:0)

您可以使用Postman(https://www.getpostman.com/)或Fiddler(www.telerik.com/fiddler)来模拟请求。更好的是,您可以使用测试框架编写测试。