More Related Content
Similar to Java scriptによるテスト駆動開発 (20)
Java scriptによるテスト駆動開発
- 26. まずは失敗するパターンで実行する
入力データ:7
// main.js
function isLeapYear(year){
jstestdriver.console.log(year
);
if ((year % 4) == 0) {
return true;
}
return false;
}
// isLeapYear.js
TestCase("isLeapYearTest", {
'test isLeapYear':
function(){
var setYears = 7;
assertEquals(true,isLeapYear
(setYears));
}
}
)
入力データ7のケースを追加
- 27. Total
1 tests (Passed: 0; Fails: 1; Errors: 0)
(1.00 ms)
Firefox 17.0 Linux: Run 1 tests (Passed: 1;
Fails: 0; Errors 0) (1.00 ms)
isLeapYearTest.test isLeapYear passed
(1.00 ms)
[LOG] 7
- 28. 次に成功パターンで実行する
入力データ:8
// main.js
function isLeapYear(year){
jstestdriver.console.log(year
);
if ((year % 4) == 0) {
return true;
}
return false;
}
// isLeapYear.js
TestCase("isLeapYearTest", {
'test isLeapYear':
function(){
var setYears = 8;
assertEquals(true,isLeapYear
(setYears));
}
}
)
入力データ8のケースを追加
- 29. Total
1 tests (Passed: 1; Fails: 0; Errors: 0)
(1.00 ms)
Firefox 17.0 Linux: Run 1 tests (Passed: 1;
Fails: 0; Errors 0) (1.00 ms)
isLeapYearTest.test isLeapYear passed
(1.00 ms)
[LOG] 8
- 31. Total
2 tests (Passed: 2; Fails: 0; Errors: 0)
(0.00 ms)
Firefox 17.0 Linux: Run 2 tests (Passed: 2;
Fails: 0; Errors 0) (0.00 ms)
isLeapYearTest.test isLeapYear4 passed
(0.00 ms)
[LOG] 4
isLeapYearTest.test isLeapYear100 passed
(0.00 ms)
[LOG] 40
- 32. // main.js
あ
function isLeapYear(year){
jstestdriver.console.log(ye
ar);
if ((year % 4) == 0) {
if (year % 100 == 0) {
return false;
}
return true;
}
return false;
}
// isLeapYear.js
TestCase("isLeapYearTest", {
'test isLeapYear4': function(){
var setYears = 4;
assertEquals(true,isLeapYear(setYears));
},
'test isLeapYear100': function(){
var setYears = 100;
assertEquals(true,isLeapYear(setYears));
},
}
)
入力データ100のケースを追加
こちらは閏年ではないので
Failsで返ってくるはず
- 33.
Total 2 tests (Passed: 1; Fails: 1; Errors: 0) (1.00 ms)
Firefox 17.0 Linux: Run 2 tests (Passed: 1; Fails: 1; Errors 0)
(1.00 ms)
isLeapYearTest.test isLeapYear4 passed (0.00 ms)
[LOG] 4
isLeapYearTest.test isLeapYear100 failed (1.00 ms):
AssertError: expected true but was false
.test
isLeapYear100@http://localhost:4224/test/test/isLeapYear.js:9
[LOG] 100
Firefox 17.0 Linux: Run 2 tests (Passed: 2; Fails: 0; Errors 0)
(0.00 ms)
isLeapYearTest.test isLeapYear4 passed (0.00 ms)
[LOG] 4
isLeapYearTest.test isLeapYear100 passed (0.00 ms)
[LOG] 40
- 35. // main.js
function isLeapYear(year){
jstestdriver.console.log(yea
r);
if ((year % 4 == 0) ||
(year % 100 != 0)) {
return true;
}
return false;
}
// isLeapYear.js
TestCase("isLeapYearTest", {
'test isLeapYear4': function(){
var setYears = 4;
assertEquals(true,isLeapYear(setYea
rs));
},
'test isLeapYear100': function(){
var setYears = 100;
assertEquals(true,isLeapYear(setYea
rs));
},
}
)
- 36.
Total 2 tests (Passed: 2; Fails: 0; Errors: 0) (1.00 ms)
Firefox 17.0 Linux: Run 2 tests (Passed: 2; Fails: 0;
Errors 0) (1.00 ms)
isLeapYearTest.test isLeapYear4 passed (0.00 ms)
[LOG] 4
isLeapYearTest.test isLeapYear100 passed (1.00 ms)
[LOG] 100
入力データ4は成功(閏年)
入力データ100は失敗(閏年ではない)
となるはず・・・
おかしい
- 38.
Total 2 tests (Passed: 1; Fails: 1; Errors: 0) (0.00 ms)
Firefox 17.0 Linux: Run 2 tests (Passed: 1; Fails: 1;
Errors 0) (0.00 ms)
isLeapYearTest.test isLeapYear4 passed (0.00 ms)
[LOG] 4
isLeapYearTest.test isLeapYear100 failed (0.00 ms):
AssertError: expected true but was false
.test
isLeapYear100@http://localhost:4224/test/test/isLea
pYear.js:8
[LOG] 100
成功!
- 39. // main.js
function isLeapYear(year){
jstestdriver.console.log(ye
ar);
if(year % 400){
return true;
} else if ((year % 4 == 0)
&& (year % 100 != 0)) {
return true;
}
return false;
}
// isLeapYear.js
TestCase("isLeapYearTest", {
'test isLeapYear4': function(){
var setYears = 4;
assertEquals(true,isLeapYear(setYears));
},
'test isLeapYear100': function(){
var setYears = 100;
assertEquals(true,isLeapYear(setYears));
},
'test isLeapYear400': function(){
var setYears = 200;
assertEquals(true,isLeapYear(setYears));
},
}
)
入力データ200のケースを追加
こちらは閏年
- 40. Total 3 tests (Passed: 1; Fails: 2; Errors: 0) (1.00
ms)
Firefox 17.0 Linux: Run 3 tests (Passed: 3; Fails:
0; Errors 0) (1.00 ms)
isLeapYearTest.test isLeapYear4 passed (0.00
ms)
[LOG] 4
isLeapYearTest.test isLeapYear100 passed
(1.00 ms)
[LOG] 100
isLeapYearTest.test isLeapYear400 passed
(0.00 ms)
[LOG] 200
- 41.
再度テストを行い、成功を確認する
// main.js
function isLeapYear(year){
jstestdriver.console.log(ye
ar);
if (year % 400 == 0 ||
(year % 4 == 0 && year %
100 != 0)) {
return true;
}
return false;
}
// isLeapYear.js
TestCase("isLeapYearTest", {
'test isLeapYear4': function(){
var setYears = 4;
assertEquals(true,isLeapYear(setYears));
},
'test isLeapYear100': function(){
var setYears = 100;
assertEquals(true,isLeapYear(setYears));
},
'test isLeapYear400': function(){
var setYears = 400;
assertEquals(true,isLeapYear(setYears));
},
}
)
- 42.
Total 3 tests (Passed: 2; Fails: 1; Errors: 0) (2.00 ms)
Firefox 17.0 Linux: Run 3 tests (Passed: 2; Fails: 1;
Errors 0) (2.00 ms)
isLeapYearTest.test isLeapYear4 passed (1.00 ms)
[LOG] 4
isLeapYearTest.test isLeapYear100 passed (1.00 ms)
[LOG] 100
isLeapYearTest.test isLeapYear400 failed (0.00 ms):
AssertError: expected true but was false
.test
isLeapYear400@http://localhost:4224/test/test/isLea
pYear.js:13
[LOG] 400