这个示例所使用的测试框架为NUnit,大家可以到http://www.nunit.org/下载该工具
测试项目中需要引用NUnit中的nunit.framework.dll
如何使用NUnit可以看这篇文章 一步一步学NUnit
我们就以一个简单的需求开始吧。
需求
员工登陆系统,输入登陆名密码,系统返回是否登陆成功
我们首先先对这个需求写测试用例
1
[TestFixture]
2
public class EmployeeTest
3
{
4
[Test]
5
public void LoginTest()
6
{
7
Employee em = new Employee();
8
Assert.IsTrue(em.Login("admin", "admin"), "用户登陆测试失败");
9
}
10
}

2

3

4

5

6

7

8

9

10

这样的代码在这里是编译不通过的,我们首先要去创建一个Employee类,并创建Login(string loginName,string password)方法
1
/// <summary>
2
/// 员工类
3
/// </summary>
4
public class Employee
5
{
6
/// <summary>
7
/// 员工登陆
8
/// </summary>
9
/// <param name="loginName">登陆名</param>
10
/// <param name="password">密码</param>
11
/// <returns></returns>
12
public bool Login(string loginName, string password)
13
{
14
return false;
15
}
16
}

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

然后我们编译通过,但是测试亮红灯,测试失败,接下来我们实现这个方法
1
/// <summary>
2
/// 员工类
3
/// </summary>
4
public class Employee
5
{
6
/// <summary>
7
/// 员工登陆
8
/// </summary>
9
/// <param name="loginName">登陆名</param>
10
/// <param name="password">密码</param>
11
/// <returns></returns>
12
public bool Login(string loginName, string password)
13
{
14
if (loginName == "admin" && password == "admin")
15
{
16
return true;
17
}
18
return false;
19
}
20
}

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

然后我们再进行测试,通过
到这里我们基本功能已经测试成功了,但是这里还有我们还需要增加对用户名为空的验证,我们还是和上面一样先写一个测试用例
1
[Test]
2
[ExpectedException(typeof(ArgumentException),ExpectedMessage="登陆名不能为空", UserMessage="用户验证测试失败")]
3
public void ValidateLoginName()
4
{
5
Employee em = new Employee();
6
em.Login(null, null);
7
}

2

3

4

5

6

7

这个代码在这里测试还是不通过的,因为我们没有实现,接下来我们实现这个判断,代码最后修改如下
1
/// <summary>
2
/// 员工登陆
3
/// </summary>
4
/// <param name="loginName">登陆名</param>
5
/// <param name="password">密码</param>
6
/// <returns></returns>
7
public bool Login(string loginName, string password)
8
{
9
if (string.IsNullOrEmpty(loginName))
10
{
11
throw new ArgumentException("登陆名不能为空");
12
}
13
if (loginName == "admin" && password == "admin")
14
{
15
return true;
16
}
17
return false;
18
}

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

然后我们在nunit工具中测试一下,都是绿灯了
基本功能我们完成了,在下一节中我们将讲解如何对这个代码进行重构,尽请期待。。。