IHttpActionResult et les Tests d'Intégration Web API v2 de Mettre en MS Test

VS2013 auto généré une web api v2 contrôleur pour me base sur mon EF contexte. Je suis en train de test de l'unité de la placer une partie de la manette. Peu importe ce que je fais je ne peux pas obtenir mon affirme pour vérifier la StatusCodeResult retour. La génération automatique de code ressemble à ceci:

 //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);
    }

Mon test d'Intégration ressemble à ceci:

        [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 { Active = true, Name = vendorName });
        ctx.SaveChanges();

        var myVendor = (from v in ctx.Vendors
                        where v.Name == vendorName
                        select v).FirstOrDefault();

        //Get Newly Inserted ID
        Assert.IsNotNull(myVendor, "Vendor is Null");
        myVendor.Name = "New Name";

        //Act
        var httpActionResult = controller.PutVendor(myVendor.Id, myVendor);
        //var response = httpActionResult as OkNegotiatedContentResult<Vendor>;
        var response = httpActionResult as OkNegotiatedContentResult<Vendor>;

        //Assert


    }

Est-il quelque chose de mal avec mon test? Que dois-je Affirme ressembler?

Cette assertion renvoie true:

Assert.IsInstanceOfType(httpActionResult, typeof(System.Web.Http.Results.StatusCodeResult));

mais je ne pense pas que c'est en fait les tests de rien, sauf qu'il y avait une sorte de retour. Toute aide serait grandement appréciée.

Êtes-vous à l'aide d'une véritable base de données pour enregistrer les modifications?
Oui, il est câblé via Entity Framework 6.0.1.
La seule raison pour laquelle je intenter un procès à une vraie base de données du moment, c'est parce que je ne peux pas obtenir de l'Effort (.NET dans la mémoire de la base de données) pour fonctionner avec la nouvelle version de EF. Une fois l'Effort de travail qu'il va créer une structure de base de données dans la mémoire pour les "tests unitaires" mais pour l'instant je suis juste en le cognant contre une véritable, sql server vide. Effort: effort.codeplex.com

OriginalL'auteur Eric | 2013-12-04