TDD 面向测试驱动开发
模仿jest 实现简单的自动化测试工具
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<script src="./index.js"></script>
<script src="./mytest.js"></script>
</head>
<body>
<script>
// console.log(add(1,2))
</script>
</body>
</html>
//index.js
function add(a,b) {
return a + b
}
//index.js
function add(a,b) {
return a + b
}
//mytest.js
function test(title,fn) {
try {
fn()
console.log(title,"测试成功")
} catch (error) {
console.error(error)
console.log(title,"测试失败")
}
}
function expect(param) {
return {
toBe(ret){
if (param !== ret) {
throw Error(`期望与实际不符合,期望是${ret},实际是${param }`)
}
}
}
}
test("测试相互加",() => {
expect(add(1,2)).toBe(3)
})
test("测试其他类型相加",() => {
expect(add("1",2)).toBe(3)
expect(add(1,"2")).toBe(3)
expect(add("1","2")).toBe(3)
})
输出结果
开始优化代码
function add(a,b) {
return Number(a) + Number(b)
}