这个单元测试 EF 有问题
Somthing wrong with this Unit Test EF
m 新的单元测试和 EF 代码优先
我正在尝试使用 EF 测试将数据添加到数据库中的功能。
我不知道我的代码有什么问题,它应该失败但它通过了
这是 m 测试函数
[TestClass]
public class ProspectControllerTest
{
[TestMethod]
public void Index()
{
DataContext context = new DataContext();
Seller c = new Seller
{
SellerName = "test20",
SellerDivision = "test20",
SellerCity = "City410",
Active = true,
};
context.sellers.Add(c);
context.SaveChanges();
Seller s = (from d in context.sellers
where d.SellerId == c.SellerId
select d).Single();
//This shouldent pass because there is no records in the db !
c.SellerName.Equals(s.SellerName);
}
}
}
这里是mclass
public class Seller
{
[Key]
public int SellerId { get; set; }
public string SellerName { get; set; }
public string SellerDiv { get; set; }
public string SellerCity { get; set; }
public Boolean Active { get; set; }
public Div Div { get; set; }
public ICollection<Prospect> prospects { get; set; }
}
另一个问题,此测试是否将任何数据存储到数据库中?我应该能够在数据库中查看记录吗?
更改以下行
//This should fail
c.SellerName.Equals("asdfsadfasdfsadfsadf");
有
Assert.AreEqual<string>("asdfsadfasdfsadfsadf", c.SellerName);
断言语句验证您的测试输出。
如果您要验证是否将正确的对象插入到数据库中,请使用以下断言语句进行验证。
Assert.IsNotNULL(s);
Assert.AreEqual<string>("asdfsadfasdfsadfsadf",c.SellerName);
您必须在测试方法中使用 Mock 来执行插入数据库等操作(但它不会将用于 运行 代码的查询插入到数据库中,但它不会因为使用 Mock).
而保存数据库
注意:使用 MOCK 概念来实现。
Assert.AreEqual(c.SellerName, "asdfsadfasdfsadfsadf");
并使用断言检查值。
m 新的单元测试和 EF 代码优先 我正在尝试使用 EF 测试将数据添加到数据库中的功能。 我不知道我的代码有什么问题,它应该失败但它通过了 这是 m 测试函数
[TestClass]
public class ProspectControllerTest
{
[TestMethod]
public void Index()
{
DataContext context = new DataContext();
Seller c = new Seller
{
SellerName = "test20",
SellerDivision = "test20",
SellerCity = "City410",
Active = true,
};
context.sellers.Add(c);
context.SaveChanges();
Seller s = (from d in context.sellers
where d.SellerId == c.SellerId
select d).Single();
//This shouldent pass because there is no records in the db !
c.SellerName.Equals(s.SellerName);
}
}
}
这里是mclass
public class Seller
{
[Key]
public int SellerId { get; set; }
public string SellerName { get; set; }
public string SellerDiv { get; set; }
public string SellerCity { get; set; }
public Boolean Active { get; set; }
public Div Div { get; set; }
public ICollection<Prospect> prospects { get; set; }
}
另一个问题,此测试是否将任何数据存储到数据库中?我应该能够在数据库中查看记录吗?
更改以下行
//This should fail
c.SellerName.Equals("asdfsadfasdfsadfsadf");
有
Assert.AreEqual<string>("asdfsadfasdfsadfsadf", c.SellerName);
断言语句验证您的测试输出。
如果您要验证是否将正确的对象插入到数据库中,请使用以下断言语句进行验证。
Assert.IsNotNULL(s);
Assert.AreEqual<string>("asdfsadfasdfsadfsadf",c.SellerName);
您必须在测试方法中使用 Mock 来执行插入数据库等操作(但它不会将用于 运行 代码的查询插入到数据库中,但它不会因为使用 Mock).
而保存数据库注意:使用 MOCK 概念来实现。
Assert.AreEqual(c.SellerName, "asdfsadfasdfsadfsadf");
并使用断言检查值。