小编Eri*_*ric的帖子

IHttpActionResult和Integration Testing Web API v2进入MS Test

VS2013根据我的EF上下文为我自动生成了一个web api v2控制器.我正在尝试对控制器的放置部分进行单元测试.无论我做什么,我都无法通过检查StatusCodeResult返回来获取断言.自动生成的代码如下所示:

 // PUT api/Vendor/5
    public IHttpActionResult PutVendor(int id, Vendor vendor)
    {
        if (!ModelState.IsValid)
        {
            return BadRequest(ModelState);
        }

        if (id != vendor.Id)
        {
            return BadRequest();
        }

        db.Entry(vendor).State = EntityState.Modified;

        try
        {
            db.SaveChanges();
        }
        catch (DbUpdateConcurrencyException)
        {
            if (!VendorExists(id))
            {
                return NotFound();
            }
            else
            {
                throw;
            }
        }

        return StatusCode(HttpStatusCode.NoContent);
    }
Run Code Online (Sandbox Code Playgroud)

我的集成测试如下所示:

        [TestMethod]
    public void PutVendor_UpdateVendorRecord_ReturnsTrue()
    {
        // Arrange
        //CleanUpVendors();

        var controller = new VendorController(ctx);
        const string vendorName = "Unit Test Company";

        // Add vendor to database
        ctx.Vendors.Add(new Vendor { …
Run Code Online (Sandbox Code Playgroud)

c# integration-testing mstest asp.net-web-api

8
推荐指数
1
解决办法
1万
查看次数

标签 统计

asp.net-web-api ×1

c# ×1

integration-testing ×1

mstest ×1