zoukankan      html  css  js  c++  java
  • 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还有其它一些功能,但我要应用后才能理解这些功能要解决的问题。

  • 相关阅读:
    v-if与v-show的区别
    vue 初始化项目
    element-ui的el-table中添加递增序号
    根据下拉框中选择的列在下面表格中显示对应的列
    element-ui中el-input需要改变placeholder的字体颜色
    根据不同路由,使对应的菜单高亮显示
    中间文字,两边横线的css3伪元素的使用
    关于正则表达式进行自定义校验
    对输入的表单内容自定义校验
    vue实现登录之后长时间未操作,退出登录
  • 原文地址:https://www.cnblogs.com/yzx99/p/1275689.html
Copyright © 2011-2022 走看看