我是一名尝试学习测试驱动开发的前端开发人员。我使用 jQuery/jasmine 构建了一个简单的 js 计算器。
根据我所学到的,我首先开始编写我的测试用例(在 jasmine 中)。
describe("calculator", function() {
it("add correctly", function() {
expect(add(2,3)).toEqual(5);
});
it("subtract correctly", function() {
expect(sub(2,3)).toEqual(-1);
});
describe("divide", function(){
it("divided correctly", function(){
expect (divide(2,3)).toEqual(0.6666666666666666);
});
it("divided by 0 gives infite", function(){
expect (divide(2,0)).toEqual(Infinity);
});
});
describe("toggle sign", function(){
it("toggle to - sign", function() {
expect (toggleSign(2)).toEqual(-2);
});
it("toggle to + sign", function() {
expect (toggleSign(-2)).toEqual(2);
});
});
});
然后用最少的代码传递它们
(函数(窗口,文档,未定义){“使用严格”;
window.add = function(a,b){ return a+b; };
window.sub = function(a,b){ return ab; };
window.divide =function(a,b){ 返回 (a/b); };
window.toggleSign = function(a){ return -a; };
}(窗口,文档));
在我真正开始构建应用程序之前,我都很开心和满足
这是它的样子 http://niteshsharma.com/jscalc/
我能想到的最明智的方法是编写一个计算器,是创建一个完整操作的简单字符串并在执行时对其进行评估
window.press = function(a){
$("#display").html(function(i, oldHtml){
return oldHtml+a;
});
};
window.execute= function(){
try{
$("#display").html( new Function( "return " + $("#display").html())() );
}
catch(err){
alert("error");
}
};
我怎么能为这样的代码写一个测试用例?如果有人可以向我解释做 TDD 的正确过程(以我的计算器为例),我将不胜感激。