簡體   English   中英

使用 Jest 對 EventEmitter 進行單元測試

[英]Unit Testing for EventEmitter with Jest

我是整體單元測試的新手,尤其是 javascript 新手。 我正在使用 Jest 進行一些單元測試,我遇到了這個對我來說沒有多大意義的腳本。 但是,我想我會嘗試為它編寫一個測試。

我對此完全陌生,所以即使了解 EventEmitter 也會讓我失望。 我確實讀過你必須調用,在這種情況下,newCommandEmitter 但這個腳本根本沒有那個。 只有三行。

代碼在下面,但我想知道,這甚至值得寫一個測試嗎?

const EventEmitter = require('events')
const newCommandEmitter = new EventEmitter()
module.exports = newCommandEmitter

我的測試腳本如下:

const newCommandEmitter = require("./newCommandEmitter.js");
const events = require("events");

jest.mock("./newCommandEmitter.js");
jest.mock("events")

describe("Testing for events if command is used for events.", () => {

    test("First test to see if we get events data.", async () => {

        expect(newCommandEmitter).toBeTruthy();
    });
});

簡短的回答:不,像這樣對代碼進行單元測試是不值得的。

為什么?

  1. 時間效率低 - 測試瑣碎的執行路徑/代碼片段(就像您給出的那樣)給我們帶來的好處很少甚至沒有,但是時間非常昂貴,因為這樣的路徑/代碼出現的頻率很高。 這就是為什么我們通常會測試所有可能破壞的東西。 最重要的測試浪費了寶貴的時間,這些時間可用於編寫功能代碼或在需要的地方編寫測試。

  2. 質疑我們的編程語言/框架的公理 - 你在這里所做的可以被認為是這樣的,因為除了導出/導入之外,你唯一要做的就是創建一個帶有內置構造函數的對象。 使用內置功能時,我們假設它們可以正常工作並且它們永遠不會中斷(文檔中指定的情況除外)。 否則,為了保持一致,我們需要質疑語言/庫的創建者提供給我們的每一個函數、類和運算符。 單元測試不應該測試編寫代碼的語言,而是測試代碼本身。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM