• JsUnit


    测试驱动开发
    test-driven development TDD
    好处:
    提供明确的目标:因为你也是代码的使用者
    提供文档:因为有测试代码,因此文档会更多一些
    改善设计:因为你也是代码的使用者,测试要想简单,首先是对象要简单,所以你的代码不会太复杂
    鼓励重构:不害怕重构,只要测试通过就行
    提高速度:增加或修改代码时,不会造成不可估计的错误,从长远来看,它是提高编码速度的
    提供反馈:因为你也是代码的使用者
    测试是会上瘾的!

    JsUnit
    测试函数不能有任何参数,必须有一个前缀test。测试函数包含在一个测试页中,测试页必须包含jsunitCore.js文件。测试函数也可以放在单独的JavaScript文件中,不过,如果这样做,就需要使用exposeTestFunctionNames()方法,这样JsUnit才能找到测试函数。
    实际操作一下:假设我有一个js文件,simple.js
    function addTwoNumbers(value1, value2)
    {
     return parseInt(value1) + parseInt(value2);
    }
    我还要再建立一个测试页,simple_t.htm
    <html>
    <head>
    <script language="JavaScript" src="../app/jsUnitCore.js"></script>
    <script language="JavaScript" src="simple.js"></script>
    <script language="JavaScript">
    function testValidArgs()
    {
     assertEquals("2 + 2 is 4", 4, addTwoNumbers(2, 2));
    }

    function testWithNegativeNumbers()
    {
     assertEquals("negative numbers: -2 + -2 is -4", -4, addTwoNumbers(-2, -2));
    }
    </script>
    <head>
    <body>
     This is a simple test page for addTwoNumbers(value1, value2)
    </body>
    </html>
    如果JsUnit不幸无法自动找到你的测试函数,请在测试页中加入这个函数:
    function exposeTestFunctionNames()
    {
     var tests = new Array(2);
     tests[0] = "testValidArgs";
     tests[1] = "testWithNegativeNumbers";
     return tests;
    }
    这就麻烦多了,因为函数名要自己一个个地输入,输错了,测试就出错,提示:
    对象不支持此属性或方法

    函数setUp是指在执行前所做的事,tearDown是指在执行后所做的事。
    function setUp()
    {
     document.getElementById("value1").value = "2";
     document.getElementById("value2").value = "2";
    }

    function testValidArgs()
    {
     assertEquals("getElement 2 + 2 = 4", 4, addNumbers());
    }

    function addNumbers()
    {
     var val1 = document.getElementById("value1").value;
     var val2 = document.getElementById("value2").value;
     return addTwoNumbers(val1, val2);
    }

    function tearDown()
    {
     document.getElementById("value1").value="";
     document.getElementById("value2").value="";
    }
    JsUnit还有其它一些功能,但我要应用后才能理解这些功能要解决的问题。

  • 相关阅读:
    [原创]PostgreSQL Plus Advanced Server批量创建分区表写入亿级别数据实例
    [原创]从Oracle和Microsoft Sql Server迁移到PostgreSQL Plus Advanced Server
    [原创]PostgreSQL Plus Advince Server在 HA环境中一对多的Stream Replication配置(四)
    【译】x86程序员手册41-10.6 TLB(快表)测试
    【译】x86程序员手册40-10.5初始化的例子
    【译】x86程序员手册39-10.3切换到保护模式
    【译】x86程序员手册38-10.2实在址模式下的软件初始化
    【译】x86程序员手册37-第10章 初始化
    【译】x86程序员手册36-9.9异常汇总
    【译】x86程序员手册35-9.8异常条件
  • 原文地址:https://www.cnblogs.com/yzx99/p/1275689.html
Copyright © 2020-2023  润新知