iT邦幫忙

2022 iThome 鐵人賽

DAY 6
0

https://ithelp.ithome.com.tw/upload/images/20220921/201390667BWkQoZLpo.png

今天來實際寫幾個函式,首先,先新增一個 util.js 及 util.test.js 檔案後開始撰寫函式吧!

練習一 :正方形體積換算

首先在 util.js 撰寫一個函式,來計算正方形體積:

// util.js
export const squareArea = (length, width) => {
  return length * width;
};

接下來透過 util.test.js 來進行測試,首先要先把要測試的函式 import 進來,接下來傳入數值長寬,並斷言該函式能進行長寬運算後,得出需要的結果:

// util.test.js
import { squareArea } from "./util";

test("test squareArea function is work", () => {
  expect(squareArea(2, 2)).toBe(4);
});

這樣第一個練習函式就順利通過了!

練習二:清除前後空格

一樣在 util.js 撰寫函式並透過 trim 方法來清除字串的前後空格:

// util.js
export const trim = (string) => {
  return string.trim();
};

接下來開始撰寫測試:

別忘記要先引入 trim 函式唷!


// util.test.js
import { squareArea, trim } from "./util";
test("test trim function is work", () => {
  expect(trim(" 0912345678")).toBe("0912345678");
});

練習三:陣列比對

透過陣列比對可以讓我們知道陣列的長度及值是否一致:

// util.js
export const arrayEquals = (a, b) => {
  return (
    Array.isArray(a) &&
    Array.isArray(b) &&
    a.length === b.length &&
    a.every((val, index) => val === b[index])
  );
};

可以透過 describe 將要測試的兩種情況包覆起來,並分別用各別 test 方法內進行測試,透過 toBeTruthytoBeFalsy 來協助斷言回傳值為 truefalse

// util.test.js
import { squareArea, trim, arrayEquals } from "./util";
describe("test arrayEquals function is work", () => {
  test("array is equals", () => {
    const a = [1, 2, 3];
    const b = [1, 2, 3];
    expect(arrayEquals(a, b)).toBeTruthy();
  });
  test("array not equals", () => {
    const a = [1, 2, 3];
    const b = [1, 2, 3, 4];
    expect(arrayEquals(a, b)).toBeFalsy();
  });
});

練習四:是否為空字串

撰寫函式來協助判斷 string 的長度及是否為 “” ,該函式會回傳 true 或 false :

// util.js
export const emptyString = (string) => {
  return string.length === 0 && string === "";
};

透過 toBeTruthytoBeFalsy 協助判斷為空字串的情況下回傳值為 true ,不為空字串的情況下回傳值為 false :

// util.test.js
import { squareArea, trim, arrayEquals, emptyString } from "./util";
describe("test emptyString function is work", () => {
  test("is empty string", () => {
    const string = "";
    expect(emptyString(string)).toBeTruthy();
  });
  test("not empty string", () => {
    const string = "123";
    expect(emptyString(string)).toBeFalsy();
  });
});

文件參考

https://masteringjs.io/tutorials/fundamentals/compare-arrays


上一篇
Jest 基礎方法
下一篇
React Testing Library 的一些好用選取方法
系列文
<< 測試魔法 >> 這能動嗎?不然就測測看好了!30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言