TDD编程实验

作者: 苦寒行 | 来源:发表于2017-04-18 21:58 被阅读35次

本文分为以下几个方面:

  • 知识、思路
  • 实现代码
  • 测试代码
  • git log截屏记录

知识、思路、github地址

http://www.jianshu.com/p/62a1aa729672
git@github.com:kuirons/frequencynumber.git

实现代码

function handleString(testArray, result, resultFlag, resultArray) {
    for (var i = 0; i < testArray.length; i++) {
        var reg = /^[a-z]*$/
        if (testArray[i].indexOf("'") !== -1) {
            result = "请不要输入缩写"
            resultFlag = false
            break
        }
        else if (reg.test(testArray[i])) {
            if (resultArray.has(testArray[i])) {
                resultArray.set(testArray[i], resultArray.get(testArray[i]) + 1)
            }
            else {
                resultArray.set(testArray[i], 1)
            }
        }
        else {
            result += "输入的字符串包含非法字符"
            resultFlag = false
            break
        }
    }
    return {result: result, resultFlag: resultFlag};
}
function sortS(changeArrayValue, i, changeArraykey) {
    flag = changeArrayValue[i]
    for (var j = i; j < changeArrayValue.length; j++) {
        if (flag < changeArrayValue[j]) {
            var ch = changeArrayValue[i]
            changeArrayValue[i] = changeArrayValue[j]
            changeArrayValue[j] = ch
            var ch = changeArraykey[i]
            changeArraykey[i] = changeArraykey[j]
            changeArraykey[j] = ch
        }
    }
    return {j: j, ch: ch, ch: ch};
}
function spliceString(resultArray, result) {
    {
        var changeArraykey = new Array()
        var changeArrayValue = new Array()
        resultArray.forEach(function splitString(item, key, mapObj) {
            changeArraykey.push(key)
            changeArrayValue.push(item)
        })
        for (var i = 0; i < changeArrayValue.length; i++) {
            var __ret = sortS(changeArrayValue, i, changeArraykey);
            var j = __ret.j;
            var ch = __ret.ch;
            var ch = __ret.ch;
        }
        for (var i = 0; i < changeArrayValue.length; i++) {
            result = result + changeArraykey[i] + " " + changeArrayValue[i] + "\n"
        }
    }
    return result;
}
function judge(testString, result) {
    testString = testString.toLowerCase()
    var testArray = testString.split(/[ ]+/)
    var resultArray = new Map()
    var resultFlag = true
    var __ret = handleString(testArray, result, resultFlag, resultArray);
    result = __ret.result;
    resultFlag = __ret.resultFlag;
    if (resultFlag === true) result = spliceString(resultArray, result);
    return {testString: testString, result: result};
}
/**
 * Created by Admin on 2017/4/17.
 */
function fn(testString) {
    var result = "";
    if (testString === "") {
        result = ""
    }
    else if ((typeof testString) !== "string") {
        result = "输入的类型不是字符串"
    }
    else {
        var __ret = judge(testString, result);
        testString = __ret.testString;
        result = __ret.result;
    }
    return result
}

测试代码

/**
 * Created by Admin on 2017/4/17.
 */
/*
"use strict"
var _=require("lodash")
var chai=require("chai")
var sinon=require("sinon")
var sinonChai=require("sinon-chai")
var expect=chai.expect
chai.use(sinonChai)

var main=require("./test.js")
*/
describe("fn", function () {
    it("testcase1", function () {
        expect("").toEqual(fn(""));
    });
    it("testcase2", function () {
        expect("输入的类型不是字符串").toEqual(fn(123));
    });
    it("testcase3", function () {
        expect("输入的类型不是字符串").toEqual(fn(12.3));
    });
    it("testcase4", function () {
        var testarry=new Array([1,"2"])
        expect("输入的类型不是字符串").toEqual(fn(testarry));
    });
    it("testcase5", function () {
        expect("请不要输入缩写").toEqual(fn("it's a Pig"));
    });
    it("testcase6", function () {
        expect("it 1\nis 1\na 1\npig 1\n").toEqual(fn("IT     IS A PIG"));
    });
    it("testcase7", function () {
        expect("输入的字符串包含非法字符").toEqual(fn("IT% IS A PIG"));
    });
    it("testcase8", function () {
        expect("输入的字符串包含非法字符").toEqual(fn("it is a pig,it is cute"));
    });
    it("testcase9", function () {
        expect("it 3\nwas 2\nthe 2\nage 2\nof 2\nwisdom 1\nfoolishness 1\nis 1\n").toEqual(fn("it was the age of wisdom it was the age of foolishness it is"));
    });
});

git log截图

Paste_Image.png

相关文章

  • TDD编程实验

    本文分为以下几个方面: 知识、思路 实现代码 测试代码 git log截屏记录 知识、思路、github地址 ht...

  • ThoughtWorks暑期特训——任务五 ·学习笔记

    一 、编程精进之法 “敏捷”之TDD TDD(全称Test Driven Development)测试驱动开发,是...

  • 解决问题之:Git和Github

    TDD编程:word frequency 参考1参考2 推荐,手把你教你使用Git

  • 关于TDD-测试驱动开发

    一、什么是TDD TDD即“测试驱动开发”,编程领域中指在编写实际生产代码之前,先编写测试用例(单元测试)...

  • 测试

    TDD:测试驱动编程,编程方法学,编程思想 先写测试用例,再编码。 单元测试、压力测试、疲劳强度测试(长期稳定运行...

  • TDD编程:Word Frequency

    知识思路github地址 知识 手把手教你如何安装和使用Karma-Jasmine推荐!手把手教你使用Gitgit...

  • TDD实践心得——打开了另一扇门

    本周有一个新的开始,我已经实践TDD一周了,真正实践起来TDD,对于我这个老程序像是打开了另一扇编程的大门,收获良...

  • 深度解读 - TDD(测试驱动开发)

    本文结构: 什么是 TDD 为什么要 TDD 怎么 TDD FAQ 学习路径 延伸阅读 什么是 TDD TDD 有...

  • TDD实践精益编程

    苹果筛选 1. 筛选绿色的苹果 2.筛选红色的苹果 **Duplicated is evil **通过参数化,消除...

  • 观看“ 两个Daniel结对写 Game of Life ”

    观看两个Daniel结对编程的TDD 开发,两位小步快走,实现这个Game of life。期间精益求精,对于看点...

网友评论

    本文标题:TDD编程实验

    本文链接:https://www.haomeiwen.com/subject/lzbqzttx.html