簡體   English   中英

摩卡咖啡和柴,我怎么能嘲笑預期的結果?

[英]mocha & chai, how can I mock expect result?

我的源代碼:

function getElementCountOfArray(arr) {
    var countObj = {};
    arr.forEach((element) => {
        if(countObj[element]) {
            countObj[element] ++;
        } else {
            countObj[element] = 1;
        }
    });

    return countObj;
}

module.exports = getElementCountOfArray;

我的測試代碼:

describe('getElementCountOfArray', function() {

    it('test case 1', function() {
        var numArray = [2, 2, 3, 6, 7, 7, 7, 7, 8, 9];

        var result = {
            2: 2,
            3: 1,
            6: 1,
            7: 4,
            8: 1,
            9: 1
        };

        expect(getElementCountOfArray(numArray)).to.eql(result);
    });
});

result是我自己計算的,我真的認為是不正確的。

如果result是復雜的數據結構,則手動計算不是一個好主意。 我可能對result有誤。

那么,模擬expect結果的“正確”方法是什么?

我要說的是單元測試應該如何工作。 SUT(被測系統)返回的結果(即您正在測試的方法)是在SUT中完成處理的結果。 要測試SUT, 您必須事先知道最終結果是什么 這就是為什么建議使用簡單的預期殘值來測試SUT結果的原因,您確信這是正確的 當然,某些結果可能是復雜的數據結構,但是您可以選擇僅使用一個或兩個元素對期望的結構進行存根。

再次,期望值,無論多么復雜,都必須易於驗證和簡單到足以使某人能夠使用空運行的SUT到達。 希望這能回答您的問題。

暫無
暫無

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

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