テストコード練習1
2894 ワード
昨日の面接の影響で、テストコードに興味を持ちました.私がフィールドコードを弾いたとき、外星語の出現のように、私は本当に崩壊しただけで、です.话のテストコードを闻くだけで冗谈とか胜手に言ってこれは何なのか大概に勉强したい自己反省 面接が終わったら、どうやって使うのか知りたいです.だからこれはベロフトさんの古い文章ですが、簡単なテストコードの位置付けを発見しました:JavaScriptテストの基礎 は大変ですが、ちょっと試してみたいです.他の人も理解できる言葉を理解できるコードを作りたいです.そして良い方法を考えたいという小さな気持ちから…. (練習は複数のテストツールのJestを使用して作成します...)
糸またはnpmは取り付け可能ですが、npmを敷いたので利用しました.
(最近の傾向もそうですが、ベロフォードもガーゼがおすすめみたい…) ディレクトリと の作成
ここにjest
簡単な関数ファイルをテスト対象として作成する にテストファイル を作成する. test:新しいテスト例の関数を作成し、使用可能な「it」操作方法は「test」と同じ です. expect:ケースに対する期待値を追加します.sumという名前の関数に1と2を入れると、3が得られます. toBe:matchersと呼ばれる関数で、特定の条件が満たされているかどうか、実行されているかどうか、エラーが発生しているかどうかを決定します.ここでtoBeは,我々が決定した結果値 を示す.テスト を実行端末を開く、 を入力する. !ベロフォードのブログにpakageがありますjsonにscriptsを追加させてもらいましたが、行ってみるとスクリプトに何かが入っていたので、直接コマンドを入力しました. がんばれ!上記結果 を得る.
describleの使用
テストケースを作成するときは、キーワード
sum.jsファイルに新しい関数を追加
sum.test.jsファイル にテストをパッケージ化
優先パラメータ
(最近の傾向もそうですが、ベロフォードもガーゼがおすすめみたい…)
npm init -y
ここにjest
npm install --save jest
をインストール私の最初のテスト!
// sum.js
function sum(a, b) {
return a + b;
}
module.exports = sum; // 내보내기
同じディレクトリ//sum.test.js
const sum = require('./sum');
test('1 + 2 = 3', () => {
expect(sum(1, 2)).toBe(3);
});
npm test
コマンド PASS ./sum.test.js
sum
✓ calculates 1 + 2 (1 ms)
✓ calculates all numbers (1 ms)
Test Suites: 1 passed, 1 total
Tests: 2 passed, 2 total
Snapshots: 0 total
Time: 0.14 s, estimated 1 s
Ran all test suites.
Watch Usage: Press w to show more.
複数のテストケースをバンドルする必要がある場合
テストケースを作成するときは、キーワード
describe
を使用して複数のテストケースを組み合わせることができます.sum.jsファイルに新しい関数を追加
// sum.js
function sum(a, b) {
return a + b;
}
function sumOf(numbers) {
let result = 0;
numbers.forEach(n => {
result += n;
});
return result;
}
// 각각 내보내기
exports.sum = sum;
exports.sumOf = sumOf;
// sumjs 밑에 sumOf라는 새로운 함수 생성
// 여기서 궁금한 점은 함수 표현식으로 사용하려고 했는데 오류가 뜬다. 선언을 해야한다는 오류였는데 왜일까..?
// 그리고 앞서 썼던 module.exports = sum; 이 식은 왜 쓰지 않는걸까..?
const { sum, sumOf } = require('./sum');
describe('sum', () => {
it('calculates 1 + 2', () => {
expect(sum(1, 2)).toBe(3);
});
it('calculates all numbers', () => {
const array = [1, 2, 3, 4, 5];
expect(sumOf(array)).toBe(15);
});
});
// 위와 같이 describe로 감싸주고 여러 테스트 케이스를 묶을 이름으로 'sum'을 지정하고
안에 콜백의 형태로 실행될 케이스들을 넣어준다.
Reference
この問題について(テストコード練習1), 我々は、より多くの情報をここで見つけました https://velog.io/@sgr2134/테스트-코드-연습1テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol