私はテスト駆動開発を学ぼうとしているフロントエンド開発者です。jQuery/jasmine を使用して単純な js 電卓を作成しました。
学んだことから、最初にテストケースを書き始めました(ジャスミンで)。
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);
});
});
});
次に、最小限のコードでそれらを渡します
(function(window, document, undefined){ "厳密な使用";
window.add = function(a,b){ return a+b; };
window.sub = function(a,b){ return ab; };
window.divide =function(a,b){ return (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を行う正しいプロセスを(電卓の例で)説明してくれたら、とても感謝しています。