c#单元测试
来源:互联网 发布:淘宝图片空间怎么上传 编辑:程序博客网 时间:2024/06/07 13:02
数据库单元测试
1.数据库设计
Person:Id(int,主键);UserName;PassWord;Age
2.新建一个项目
2.1.定义Person类
public class Person
{
private int id;
private string userName;
private string passWorld;
private int age;
public int Id
{
get { return id; }
set { id = value; }
}
public string UserName
{
get { return userName; }
set { userName = value; }
}
public string PassWorld
{
get { return passWorld; }
set { passWorld = value; }
}
public int Age
{
get { return age; }
set { age = value; }
}
}
2.2.定义连接数据库类
public class Connection
{
public static SqlConnection GetConnection()
{
string connStr = "server=localhost;uid=sa;pwd=beyond;database=test";
SqlConnection conn = new SqlConnection(connStr);
try
{
conn.Open();
}
catch (System.Exception ex)
{
Console.WriteLine(ex.Message);
}
return conn;
}
}
2.3.定义功能函数类DBPerson,起功能函数为增删查改
public class DBPerson
{
public void InsertPerson(Person p)
{
string sql = "insert into Person (UserName,PassWord,Age) values (@userName,@passWord,@age)";
SqlConnection conn = Connection.GetConnection();
SqlCommand cmd = new SqlCommand(sql, conn);
cmd.Parameters.Add(new SqlParameter("@userName", SqlDbType.VarChar));
cmd.Parameters.Add(new SqlParameter("@passWord", SqlDbType.VarChar));
cmd.Parameters.Add(new SqlParameter("@age", SqlDbType.Int));
cmd.Parameters["@userName"].Value = p.UserName;
cmd.Parameters["@passWord"].Value = p.PassWorld;
cmd.Parameters["@age"].Value = p.Age;
try
{
cmd.ExecuteNonQuery();
}
catch (System.Exception ex)
{
Console.WriteLine(ex.Message);
}
finally
{
conn.Close();
}
}
public void Updata(Person p)
{
string sql = "update Person set UserName=@userName,PassWorld=@passWord,Age=@age where Id=@id";
SqlConnection conn = Connection.GetConnection();
SqlCommand cmd = new SqlCommand(sql, conn);
cmd.Parameters.Add(new SqlParameter("@userName", SqlDbType.VarChar));
cmd.Parameters.Add(new SqlParameter("@passWord", SqlDbType.VarChar));
cmd.Parameters.Add(new SqlParameter("@age", SqlDbType.Int));
cmd.Parameters.Add(new SqlParameter("@id", SqlDbType.Int));
cmd.Parameters["@userName"].Value = p.UserName;
cmd.Parameters["@passWord"].Value = p.PassWorld;
cmd.Parameters["@age"].Value = p.Age;
cmd.Parameters["@id"].Value = p.Id;
try
{
cmd.ExecuteNonQuery();
}
catch (System.Exception ex)
{
Console.WriteLine(ex.Message);
}
finally
{
conn.Close();
}
}
public Person GetPersonByID(int id)
{
string sql = "select * from Person where Id=@id";
SqlConnection conn = Connection.GetConnection();
SqlCommand cmd = new SqlCommand(sql, conn);
cmd.Parameters.Add(new SqlParameter("@id", SqlDbType.Int));
cmd.Parameters["@id"].Value = id;
SqlDataReader reader = cmd.ExecuteReader();
Person p = null;
if (reader.Read())
{
p = new Person();
p.Id = id;
p.UserName = reader["UserName"].ToString();
p.PassWorld = reader["PassWord"].ToString();
p.Age = Convert.ToInt32(reader["Age"]);
}
reader.Close();
conn.Close();
return p;
}
public void DeleteById(int id)
{
string sql = "delete from Person where Id=@id";
SqlConnection conn = Connection.GetConnection();
SqlCommand cmd = new SqlCommand(sql, conn);
cmd.Parameters.Add(new SqlParameter("@id", SqlDbType.Int));
cmd.Parameters["@id"].Value = id;
try
{
cmd.ExecuteNonQuery();
}
catch (System.Exception ex)
{
Console.WriteLine(ex.Message);
}
finally
{
conn.Close();
}
}
}
2.4.定义测试类
[TestFixture]
public class TestDBPerson
{
private DBPerson dbPerson;
[TestFixtureSetUp]
public void Init()
{
dbPerson = new DBPerson();
}
[Test]
public void TestInsert()
{
Person p = new Person();
p.UserName = "beyond";
p.PassWorld = "123456";
p.Age = 25;
dbPerson.InsertPerson(p);
int maxId = this.GetMaxId();
p.Id = maxId;
Person p1 = new Person();
p1 = dbPerson.GetPersonByID(maxId);
}
private void Compare(Person p,Person p1)
{
Assert.AreEqual(p.Id, p1.Id);
Assert.AreEqual(p.UserName, p1.UserName);
Assert.AreEqual(p.PassWorld, p1.PassWorld);
Assert.AreEqual(p.Age, p1.Age);
}
private int GetMaxId()
{
string sql = "select max(Id) as maxID from Person";
SqlConnection conn = Connection.GetConnection();
SqlCommand cmd = new SqlCommand(sql, conn);
SqlDataReader reader = cmd.ExecuteReader();
int maxId = 0;
if (reader.Read())
{
maxId = Convert.ToInt32(reader["maxID"]);
}
reader.Close();
conn.Close();
return maxId;
}
}
- c#单元测试
- C#单元测试
- C# 单元测试
- 图文详解C#单元测试
- c#单元测试补充
- 图文详解C#单元测试
- C#单元测试学习笔记
- c#单元测试书籍备忘
- VS2012 C# 单元测试
- C#中的单元测试
- C#单元测试面面观
- C# ~ NUnit单元测试
- c#中单元测试
- C#的单元测试方法
- C#单元测试首测
- C#创建单元测试【图文教程】
- 单元测试之道C#版
- 单元测试之道C#版
- VirtualBox 4.1.2 联网方式 Host-Only +NAT 实现 上网 + 双通
- 通用分页查询
- DOM元素的innerText和 innerHTML的属性
- SQL Server中删除重复数据的几个方法
- mysql多实例的安装以及主从复制配置
- c#单元测试
- 一套比较实用的文件操作函数集
- java回调机制
- 我不想懦弱
- Android GPS定位 获取经纬度
- linux常用命令>>文件处理命令
- JDBC
- Android TextView中文字通过SpannableString来设置超链接、颜色、字体等属性
- android GPS定位,基站定位,WIFI定位开关的控制 (转)