Sunday, July 24, 2016

Nunit Testing using Data Operation EF

Nunit Testing using Data Operation EF

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

public class EmpOperationNunit
    {
        EmployeeOperation.EmployeeDataContext context;

        [OneTimeSetUp]  // TearUP
        public void Testmethod()
        {
            context = new EmployeeOperation.EmployeeDataContext();
        }

        [Test, TestCaseSource("TestCaseEmployeeinsert")]
        public void TestEmployedInsert(string Id, string name)
        {
            int val = Convert.ToInt32(Id);
            context.Employee.Add(new Employee { ID = val, Name = name });
            context.SaveChanges();

            var emp = context.Employee.Where(x => x.ID == val && x.Name == name).SingleOrDefault();

            Assert.AreEqual(emp.ID.ToString(), Id);
            Assert.AreEqual(emp.Name.ToString(), name);
        }

        public static IEnumerable TestCaseEmployeeinsert
        {
            get
            {
                ArrayList ar = new ArrayList();

                ar.Add(new TestCaseData("", ""));
                ar.Add(new TestCaseData("2", ""));
                ar.Add(new TestCaseData("", "krish"));
                ar.Add(new TestCaseData("1", "sadhaya"));

                foreach (var item in ar)
                {
                    yield return item;
                }
            }

        }


        [OneTimeTearDown] // Tear Down
        public void Testmethod1()
        {
            context = null;
        }
    }


Add Connection String : in Class Lib & Nunit App.config

 <connectionStrings>
    <add name="EmployeeDataContext" connectionString="Data Source=(local);Initial Catalog=EmployeeDB;Integrated Security=True" providerName="System.Data.SqlClient"/>
  </connectionStrings>


No comments:

Post a Comment

Note: Only a member of this blog may post a comment.