写好一个方法如何测试, 单元测试, 这里的单元就是指的是方法; 可以直接在方法上右键创建单元测试
1. 在VS2015 上 , 选中要测试的方法, 然后 → 右键 → 添加 → 测试 → 创建单元测试 → 可以直接点 确定 (这种最方便, 推荐)
2. 解决方案管理器上→右键→添加→新建项目→测试→单元测试, 这种方式建立的单元测试需要添加被测试项目对应的引用和复制被测试项目的app.config文件
3. 解决方案中的预览图:
5. 开始测试:
namespace muTian.SysAdmin.EFDAL.Tests
{
//单元测试的类必须是这个标签;
[TestClass()]
public class UserInfoDalTests
{
[TestMethod()]//单元测试的方法必须是这个标签, 否则用不了VS的一些测试特性
public void GetUsersTest()
{
//运行单元测试, 把鼠标放到要测试的方法内部(或者双击单元测试的方法名), 然后右键→运行单元测试
UserInfoDal userInfoDal = new UserInfoDal();
//单元测试必须自己处理数据, 绝对不能依赖第三方的数据, 比如从数据库取数据. 如果依赖第三方数据, 则需要自己先创建数据, 然后再删除数据
//自己创建测试的数据
for (int i = 0; i < 10; i++)
{
userInfoDal.Add(new UserInfo() { UName="Hello"});
}
IQueryable<UserInfo> userIQuery = userInfoDal.GetUsers(u=>u.UName.Contains("H"));
//添加断言, 也就是命中; 使用AreEqual判断UserIQuery返回是否大于0行
Assert.AreEqual(true, userIQuery.Count() > 0);
}
}
}
为什么需要单元测试:
- 节省开发时间, 节省调试, 和节省修改Bug的时间; 总体来说是节省了开发时间
- 对项目非常有自信, 单元测试也是一种设计(写单元测试的时候会促进对方法的再次思考), 也是项目的管理的一种手段; 测试驱动开发; 写代码之前, 先写单元测试, 下班前, 运行下单元测试, 如果通过了, 就表示各自的完成度
- 可以辅助检测项目进度, 单元测试就是最好的文档.
- 单元测试数据不要影响数据库中原有的数据, 而且在测试完毕后清理测试数据
- 使用微软自带的单元测试组件可以进行有效的压力测试
- 把依赖的项目加入到单元测试临时文件夹中