簡體   English   中英

創建類似於Mocha JavaScript的單元測試框架

[英]Creating unit testing framework similar to Mocha JavaScript

我正在創建一個單元測試框架,並且試圖弄清楚以下代碼部分在不使用全局變量的情況下如何輸出:

describe("Test Title", function () {
    it("should return a string", function () {
        /* Assertions here */
    });
});
//OUTPUT: "PASS: Test Title should return a string"

有人可以解釋一下it方法調用如何設法使其參數之一得以describe嗎?

如果不清楚,我想說的是我想知道變量如何在回調中移動。 如果我了解發生了什么,則在回調中調用外部函數的方法會以某種方式獲取另一個外部函數的參數。

您可能會認為it執行傳遞給它的回調。 沒有。 它只是將回調注冊為測試。

最簡單的實現用於描述運行測試:

var tests = [];

function describe(description,fn) {
    fn();
    for (var i=0;i<tests.length;i++) {
        try {
            tests[i].fn();
            console.log('FAIL:' + description + ' ' + tests[i].description);
        }
        catch (e) {
            console.log('FAIL:' + description + ' ' + tests[i].description);
        }
    }
}

function it(description,fn) {
    tests.push({
        description: description,
        fn: fn
    });
}

但是,從Mocha代碼看一看,似乎describe並沒有真正運行該代碼,只注冊了測試套件即可處理另一個函數:

function describe(description,fn) {
    fn();
    testSuites.push({
        description: description,
        tests: tests.slice(0)
    });
}

但是邏輯是一樣的。 創建具有所有值的數據結構,然后對其進行處理。

暫無
暫無

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

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