iT邦幫忙

2022 iThome 鐵人賽

DAY 14
0
Modern Web

[學習筆記] 邊學邊寫 JavaScript 30天系列 第 14

[學習筆記] 邊學邊寫 JavaScript 30天 (14):Jest 測試

  • 分享至 

  • xImage
  •  

今天內容

  • 手寫測試
  • 使用Jest

筆記

  • 沒有用套件前會怎麼看自己有沒有寫錯?

    1. console.log()自己對答案
    2. ===去對答案console.log(repeat("a", 5) === "aaaaa")看有沒有true
    function repeat(str,times) {
      var result = ""
      for (var i=0; i < times; i++) {
          result += str;
      }
      return result
    }
    console.log(repeat("a",5))  //aaaaa
    console.log(repeat("a",5) === "aaaaa")  //true
    
  • 使用套件Jest:先到Jest官網安裝。一樣在terminal輸入指令npm install --save-dev jest(這裡採用npm方式安裝,官方也有提供yarn)

    通常會把主程式跟測試分開管理:新增一個index.test.js檔案來做為測試。

    //主程式 index.js
    function repeat(str,times) {
      var result = ""
      for (var i=0; i < times; i++) {
          result += str;
      }
      return result
    }
    module.exports = repeat
    
    //index.test.js
    var repeat = require("./index.js")  //這裡是引用檔案名稱,不是function名稱
    
    describe("測試 repeat",function() {
      test('a 重覆5次要等於 aaaaa', function() {
        expect(repeat("a",5)).toBe("aaaaa");
      });
      test('abc 重覆2次要等於 abcabc', function() {
        expect(repeat("abc",2)).toBe("abcabc");
      });
      test(' ""空字串 重覆10次要等於 ""空字串', function() {
        expect(repeat("",10)).toBe("");
      });
    })
    

    test語法一樣從官網看

    使用Jest可以不用自己一行一行寫console.log,再用describe把整個測試放在一起,收納好整理。

  • 寫完怎麼跑?修改package.json檔案的scripts test

    "scripts": {
      "test": "jest"   //改成 jest
    },
    // 要對單一檔案做執行:"test": "jest index.test.js" -> 改成 jest接檔案名稱。
    

    修改好後,在terminal執行npm run test就會開始跑了。

  • Test-driven Development (TDD) 測試驅動開發
    測試驅動開發是一種開發流程,用一句白話形容,就是「先寫測試再開發」。先寫測試除了能確保測試程式的撰寫,還有一個好處:有助於在開發初期釐清程式介面如何設計。


參考資料


上一篇
[學習筆記] 邊學邊寫 JavaScript 30天 (13):NPM
下一篇
[學習筆記] 邊學邊寫 JavaScript 30天 (15):ES6 I
系列文
[學習筆記] 邊學邊寫 JavaScript 30天30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言