MS Unit Test Data Operation Using Entity Framework
Step :1 - Add Entity
public class Employee
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.None)]
public int ID { get; set; }
public string Name { get; set; }
}
Step 2: Add Context class
public class EmployeeDataContext : DbContext
{
public DbSet<Employee> Employee { get; set; }
}
Step 3 : Enable-Migrations and Add Migration - Update Database
Step 4 : Create Class Library Project and add NUnit from Nuget
Step 5 : MS Unit Test Project
Add Reference EF from nuget and then add Testbase class
using System.Data.Entity.SqlServer;
using Microsoft.VisualStudio.TestTools.UnitTesting;
namespace UnitTestEmployeeOperations
{
public abstract class TestBase
{
public void Init()
{
var instance = SqlProviderServices.Instance;
}
}
}
write a unit test for EF Add employee
namespace UnitTestEmployeeOperations
{
[TestClass]
public class UnitTest1
{
EmployeeOperation.EmployeeDataContext context;
public TestContext TestContext { get; set; }
[TestInitialize]
public void TestSetup()
{
context = new EmployeeOperation.EmployeeDataContext();
}
//[TestMethod]
// [DataSource("System.Data.SqlClient", "Data Source=(local);Initial Catalog=EmployeeDB;Integrated Security=True", "Employees", DataAccessMethod.Sequential)]
[DataSource("Microsoft.VisualStudio.TestTools.DataSource.CSV", @"E:\TrainingSamples\EmployeeOperation\UnitTestEmployeeOperations\testdata.csv", "testdata#csv", DataAccessMethod.Sequential), DeploymentItem("testdata.csv"), TestMethod]
public void TestEmployeeInsert()
{
//context = new EmployeeOperation.EmployeeDataContext();
int val = Convert.ToInt32(TestContext.DataRow["ID"]);
string name = TestContext.DataRow["Name"].ToString();
context.Employee.Add(new Employee { ID = val, Name = name });
context.SaveChanges();
Employee emp = context.Employee.Where(x => x.ID == val && x.Name == name).SingleOrDefault();
Assert.AreEqual(val, emp.ID);
Assert.AreEqual(name, emp.Name);
}
[TestCleanup]
public void TestSetup1()
{
context = null;
}
}
Step :1 - Add Entity
public class Employee
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.None)]
public int ID { get; set; }
public string Name { get; set; }
}
Step 2: Add Context class
public class EmployeeDataContext : DbContext
{
public DbSet<Employee> Employee { get; set; }
}
Step 3 : Enable-Migrations and Add Migration - Update Database
Step 4 : Create Class Library Project and add NUnit from Nuget
Step 5 : MS Unit Test Project
Add Reference EF from nuget and then add Testbase class
using System.Data.Entity.SqlServer;
using Microsoft.VisualStudio.TestTools.UnitTesting;
namespace UnitTestEmployeeOperations
{
public abstract class TestBase
{
public void Init()
{
var instance = SqlProviderServices.Instance;
}
}
}
write a unit test for EF Add employee
namespace UnitTestEmployeeOperations
{
[TestClass]
public class UnitTest1
{
EmployeeOperation.EmployeeDataContext context;
public TestContext TestContext { get; set; }
[TestInitialize]
public void TestSetup()
{
context = new EmployeeOperation.EmployeeDataContext();
}
//[TestMethod]
// [DataSource("System.Data.SqlClient", "Data Source=(local);Initial Catalog=EmployeeDB;Integrated Security=True", "Employees", DataAccessMethod.Sequential)]
[DataSource("Microsoft.VisualStudio.TestTools.DataSource.CSV", @"E:\TrainingSamples\EmployeeOperation\UnitTestEmployeeOperations\testdata.csv", "testdata#csv", DataAccessMethod.Sequential), DeploymentItem("testdata.csv"), TestMethod]
public void TestEmployeeInsert()
{
//context = new EmployeeOperation.EmployeeDataContext();
int val = Convert.ToInt32(TestContext.DataRow["ID"]);
string name = TestContext.DataRow["Name"].ToString();
context.Employee.Add(new Employee { ID = val, Name = name });
context.SaveChanges();
Employee emp = context.Employee.Where(x => x.ID == val && x.Name == name).SingleOrDefault();
Assert.AreEqual(val, emp.ID);
Assert.AreEqual(name, emp.Name);
}
[TestCleanup]
public void TestSetup1()
{
context = null;
}
}
No comments:
Post a Comment
Note: Only a member of this blog may post a comment.