mirror of
https://github.com/kou029w/jest-hands-on.git
synced 2025-01-31 22:08:00 +00:00
test externalization
This commit is contained in:
parent
432dd62cff
commit
310bb48c93
7 changed files with 70 additions and 65 deletions
|
@ -46,17 +46,7 @@
|
|||
「何を作るか」ということを忘れないようにコメントに転載します。
|
||||
|
||||
```js
|
||||
// isLeapYear.test.js
|
||||
/** TODO:
|
||||
西暦年号が4で割り切れる年はうるう年
|
||||
たとえば、西暦2024年、2028年、2032年は4で割り切れるので、うるう年です。
|
||||
西暦年号が4で割り切れない年はうるう年でない
|
||||
たとえば、西暦2021年、2022年、2023年は4で割り切れないので、うるう年ではありません。
|
||||
ただし、西暦年号が100で割り切れる年はうるう年でない
|
||||
たとえば、西暦2100年、2200年、2300年は100で割り切れるので、うるう年ではありません。
|
||||
ただし、西暦年号が400で割り切れる年はうるう年
|
||||
たとえば、西暦2000年、2400年、2800年は400で割り切れるので、うるう年です。
|
||||
*/
|
||||
{{#include practices/step0.test.js}}
|
||||
```
|
||||
|
||||
うるう年であることを判定するので `isLeapYear` という名前に決めました。
|
||||
|
@ -105,12 +95,7 @@ npx jest --watchAll
|
|||
最初からすべての実装を書こうとせず、小さい変更のみで済ませるのがポイントです。
|
||||
|
||||
```js
|
||||
// isLeapYear.js
|
||||
function isLeapYear(year) {
|
||||
return year % 4 === 0;
|
||||
}
|
||||
|
||||
export default isLeapYear;
|
||||
{{#include practices/isLeapYear.js}}
|
||||
```
|
||||
|
||||
ファイルを作成したら、テスト側でも `import` 文によって実装した関数を読み込みます。
|
||||
|
@ -139,23 +124,7 @@ test("西暦年号が4で割り切れる年はうるう年", () => {
|
|||
「西暦年号が4で割り切れる年はうるう年」という目標を達成したと判断したら、コメントからは消しておきます。
|
||||
|
||||
```js
|
||||
// isLeapYear.test.js
|
||||
import isLeapYear from "./isLeapYear";
|
||||
|
||||
test("西暦年号が4で割り切れる年はうるう年", () => {
|
||||
expect(isLeapYear(2024)).toBe(true);
|
||||
expect(isLeapYear(2028)).toBe(true);
|
||||
expect(isLeapYear(2032)).toBe(true);
|
||||
});
|
||||
|
||||
/** TODO:
|
||||
西暦年号が4で割り切れない年はうるう年でない
|
||||
たとえば、西暦2021年、2022年、2023年は4で割り切れないので、うるう年ではありません。
|
||||
ただし、西暦年号が100で割り切れる年はうるう年でない
|
||||
たとえば、西暦2100年、2200年、2300年は100で割り切れるので、うるう年ではありません。
|
||||
ただし、西暦年号が400で割り切れる年はうるう年
|
||||
たとえば、西暦2000年、2400年、2800年は400で割り切れるので、うるう年です。
|
||||
*/
|
||||
{{#include practices/step1.test.js}}
|
||||
```
|
||||
|
||||
次の目標「西暦年号が4で割り切れない年はうるう年でない」に進めていきます。
|
||||
|
@ -167,27 +136,7 @@ test("西暦年号が4で割り切れる年はうるう年", () => {
|
|||
これらのテストも問題なく合格するようになれば、「西暦年号が4で割り切れない年はうるう年でない」という目標も達成したと判断して、コメントから消しておきます。
|
||||
|
||||
```js
|
||||
// isLeapYear.test.js
|
||||
import isLeapYear from "./isLeapYear";
|
||||
|
||||
test("西暦年号が4で割り切れる年はうるう年", () => {
|
||||
expect(isLeapYear(2024)).toBe(true);
|
||||
expect(isLeapYear(2028)).toBe(true);
|
||||
expect(isLeapYear(2032)).toBe(true);
|
||||
});
|
||||
|
||||
test("西暦年号が4で割り切れない年はうるう年でない", () => {
|
||||
expect(isLeapYear(2021)).toBe(false);
|
||||
expect(isLeapYear(2022)).toBe(false);
|
||||
expect(isLeapYear(2023)).toBe(false);
|
||||
});
|
||||
|
||||
/** TODO:
|
||||
ただし、西暦年号が100で割り切れる年はうるう年でない
|
||||
たとえば、西暦2100年、2200年、2300年は100で割り切れるので、うるう年ではありません。
|
||||
ただし、西暦年号が400で割り切れる年はうるう年
|
||||
たとえば、西暦2000年、2400年、2800年は400で割り切れるので、うるう年です。
|
||||
*/
|
||||
{{#include practices/step2.test.js}}
|
||||
```
|
||||
|
||||
## 続きの課題
|
||||
|
|
6
src/practices/isLeapYear.js
Normal file
6
src/practices/isLeapYear.js
Normal file
|
@ -0,0 +1,6 @@
|
|||
// isLeapYear.js
|
||||
function isLeapYear(year) {
|
||||
return year % 4 === 0;
|
||||
}
|
||||
|
||||
export default isLeapYear;
|
11
src/practices/step0.test.js
Normal file
11
src/practices/step0.test.js
Normal file
|
@ -0,0 +1,11 @@
|
|||
// isLeapYear.test.js
|
||||
/** TODO:
|
||||
西暦年号が4で割り切れる年はうるう年
|
||||
たとえば、西暦2024年、2028年、2032年は4で割り切れるので、うるう年です。
|
||||
西暦年号が4で割り切れない年はうるう年でない
|
||||
たとえば、西暦2021年、2022年、2023年は4で割り切れないので、うるう年ではありません。
|
||||
ただし、西暦年号が100で割り切れる年はうるう年でない
|
||||
たとえば、西暦2100年、2200年、2300年は100で割り切れるので、うるう年ではありません。
|
||||
ただし、西暦年号が400で割り切れる年はうるう年
|
||||
たとえば、西暦2000年、2400年、2800年は400で割り切れるので、うるう年です。
|
||||
*/
|
17
src/practices/step1.test.js
Normal file
17
src/practices/step1.test.js
Normal file
|
@ -0,0 +1,17 @@
|
|||
// isLeapYear.test.js
|
||||
import isLeapYear from "./isLeapYear";
|
||||
|
||||
test("西暦年号が4で割り切れる年はうるう年", () => {
|
||||
expect(isLeapYear(2024)).toBe(true);
|
||||
expect(isLeapYear(2028)).toBe(true);
|
||||
expect(isLeapYear(2032)).toBe(true);
|
||||
});
|
||||
|
||||
/** TODO:
|
||||
西暦年号が4で割り切れない年はうるう年でない
|
||||
たとえば、西暦2021年、2022年、2023年は4で割り切れないので、うるう年ではありません。
|
||||
ただし、西暦年号が100で割り切れる年はうるう年でない
|
||||
たとえば、西暦2100年、2200年、2300年は100で割り切れるので、うるう年ではありません。
|
||||
ただし、西暦年号が400で割り切れる年はうるう年
|
||||
たとえば、西暦2000年、2400年、2800年は400で割り切れるので、うるう年です。
|
||||
*/
|
21
src/practices/step2.test.js
Normal file
21
src/practices/step2.test.js
Normal file
|
@ -0,0 +1,21 @@
|
|||
// isLeapYear.test.js
|
||||
import isLeapYear from "./isLeapYear";
|
||||
|
||||
test("西暦年号が4で割り切れる年はうるう年", () => {
|
||||
expect(isLeapYear(2024)).toBe(true);
|
||||
expect(isLeapYear(2028)).toBe(true);
|
||||
expect(isLeapYear(2032)).toBe(true);
|
||||
});
|
||||
|
||||
test("西暦年号が4で割り切れない年はうるう年でない", () => {
|
||||
expect(isLeapYear(2021)).toBe(false);
|
||||
expect(isLeapYear(2022)).toBe(false);
|
||||
expect(isLeapYear(2023)).toBe(false);
|
||||
});
|
||||
|
||||
/** TODO:
|
||||
ただし、西暦年号が100で割り切れる年はうるう年でない
|
||||
たとえば、西暦2100年、2200年、2300年は100で割り切れるので、うるう年ではありません。
|
||||
ただし、西暦年号が400で割り切れる年はうるう年
|
||||
たとえば、西暦2000年、2400年、2800年は400で割り切れるので、うるう年です。
|
||||
*/
|
|
@ -11,14 +11,5 @@
|
|||
例:
|
||||
|
||||
```js
|
||||
test("正しくJSONをパースできる", () => {
|
||||
// 準備
|
||||
const json = `{ "name": "太郎", "age": 20 }`;
|
||||
|
||||
// 実行
|
||||
const parsed = JSON.parse(json);
|
||||
|
||||
// 検証
|
||||
expect(parsed).toEqual({ name: "太郎", age: 20 });
|
||||
});
|
||||
{{#include test-writing-style/aaa-pattern.test.js}}
|
||||
```
|
||||
|
|
10
src/test-writing-style/aaa-pattern.test.js
Normal file
10
src/test-writing-style/aaa-pattern.test.js
Normal file
|
@ -0,0 +1,10 @@
|
|||
test("正しくJSONをパースできる", () => {
|
||||
// 準備
|
||||
const json = `{ "name": "太郎", "age": 20 }`;
|
||||
|
||||
// 実行
|
||||
const parsed = JSON.parse(json);
|
||||
|
||||
// 検証
|
||||
expect(parsed).toEqual({ name: "太郎", age: 20 });
|
||||
});
|
Loading…
Add table
Reference in a new issue