我第一次使用单元测试。
我使用实体框架创建了“CAR”类。 我的项目中有以下代码
namespace EntityFrameworkExample
{
class Program
{
static void Main(string[] args)
{
public static void AddCar()
{
SampleDBEntities db = new SampleDBEntities();
Car car = new Car();
car.Brand = "Ford";
car.Model = "Mastang";
db.Cars.AddObject(car);
db.SaveChanges();
Console.WriteLine("Record Saved");
Console.ReadLine();
}
}
}
}
现在我想对这种方法进行单元测试。
我已经添加了单元测试项目以及上面项目的参考... 但我很困惑,如何称呼它?
我写了下面的代码
namespace UnitTest
{
/// <summary>
/// Summary description for UnitTest1
/// </summary>
[TestClass]
public class UnitTest1
{
[TestMethod]
public void AddCar()
{
SampleDBEntities e = new SampleDBEntities();
//what to do next ? ////////////////////////////////
}
}
}
我很困惑下一步应该写什么?
答案 0 :(得分:1)
您应该将AddCar方法放在Main方法之外以便能够调用它。我会在Program类之外为Car-functional创建一个新类。然后,您可以调用该类,而无需与测试中的程序进行交互。
对于单元测试,请在测试方法中执行“安排”,“操作”,“断言”。
安排:
var cars = new Cars();
法:
cars.AddCar("Ford", "Mustang");
断言:
//check that car is in the database
var myCar = cars.GetCar("Ford", "Mustang");
Assert.IsNotNull(myCar);
为了能够测试它,您应该在每次测试运行之前擦除数据库。
编辑以澄清:
namespace EntityFrameworkExample
{
class Program
{
static void Main(string[] args)
{
var cars = new Cars();
cars.AddCar("Ford", "Mustang");
}
}
public class Cars
{
public static void AddCar(string brand, string model)
{
SampleDBEntities db = new SampleDBEntities();
Car car = new Car();
car.Brand = brand;
car.Model = model;
db.Cars.AddObject(car);
db.SaveChanges();
Console.WriteLine("Record Saved");
Console.ReadLine();
}
public static Car GetCar(brand, model)
{
using(var db = new SampleDBEntities())
{
var car = from car in db.Cars
where car.Brand == brand
&& car.Model == model
select car;
return car.FirstOrDefault();
}
}
}
}