• 测试驱动开发实践入门篇


    这个示例所使用的测试框架为NUnit,大家可以到http://www.nunit.org/下载该工具

    测试项目中需要引用NUnit中的nunit.framework.dll

    如何使用NUnit可以看这篇文章 一步一步学NUnit

     我们就以一个简单的需求开始吧。
    需求
    员工登陆系统,输入登陆名密码,系统返回是否登陆成功
    我们首先先对这个需求写测试用例

     1[TestFixture]
     2public class EmployeeTest
     3{
     4    [Test]
     5    public void LoginTest()
     6    {
     7        Employee em = new Employee();
     8        Assert.IsTrue(em.Login("admin""admin"), "用户登陆测试失败");
     9    }

    10}

    这样的代码在这里是编译不通过的,我们首先要去创建一个Employee类,并创建Login(string loginName,string password)方法

     1/// <summary>
     2/// 员工类
     3/// </summary>

     4public 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}

     然后我们编译通过,但是测试亮红灯,测试失败,接下来我们实现这个方法

     1/// <summary>
     2/// 员工类
     3/// </summary>

     4public 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}

    然后我们再进行测试,通过
    到这里我们基本功能已经测试成功了,但是这里还有我们还需要增加对用户名为空的验证,我们还是和上面一样先写一个测试用例

    1[Test]
    2[ExpectedException(typeof(ArgumentException),ExpectedMessage="登陆名不能为空", UserMessage="用户验证测试失败")]
    3public void ValidateLoginName()
    4{
    5    Employee em = new Employee();
    6    em.Login(nullnull);
    7}

    这个代码在这里测试还是不通过的,因为我们没有实现,接下来我们实现这个判断,代码最后修改如下

     1/// <summary>
     2/// 员工登陆
     3/// </summary>
     4/// <param name="loginName">登陆名</param>
     5/// <param name="password">密码</param>
     6/// <returns></returns>

     7public 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}

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

  • 相关阅读:
    webService 的使用
    前端框架——树形结构Ztree的使用
    vue使用问题总结(长期更新)
    yum安装配置MySQL数据库
    kworkerds挖矿木马
    zabbix 中文乱码
    GIT 仓库的搭建
    ELK 收集交换机日志(以华为交换机为例)
    Zabbix 邮箱告警(Python脚本)
    Tomcat8性能优化
  • 原文地址:https://www.cnblogs.com/luluping/p/1506431.html
Copyright © 2020-2023  润新知