繁体   English   中英

如何为函数编写单元测试?

[英]How to write unit test for a function?

我将单元测试带到我的 javascript 文件中。 由于我不希望某些函数被继承,所以我独立声明了一个函数。 如何编写函数的单元测试? (就像下面的“getFormatData”)我还没有找到关于这个的教程。 也许关键字不正确:) 我知道如何为 setValue 编写 UT,但如何为“getFormatData”编写 UT。我尝试过但控制台显示未定义 getFormat。 即使我添加了“window.getFormatData({});”,错误信息也是一样的。

MockedObject.prototype.setValue(oData){
    var oMockedData = getFormatData(oData);

    this.setData(oMockedData);
};

function getFormatData(oData){
    return oData ? oData : 1;
}
//Test "setValue":

QUnit.module("Test setValue", funciton(assert){
    var control = new MockedObject()
    var oData = {};
    sinon.stub(window, "getFormatData").returns("MockedResult");
    sinon.stub(control, "setData");

    control.setValue(oData);

    assert.ok(control.setData.called, "setData is called");

    window.getFormatData.restore();
    control.setData.restore();
})

//Test "getFormatData": 
QUnit.module("getFormatData", function(assert) {
     // Act
     var result = getFormatData({});//var result = window.getFormatData({});

     //Assert
     assert.strictEqual(result, 1, "Accepted");
})

那么,getFormatData 有什么作用呢? 基于其输入的预期结果是什么? 有两种情况:oData为真--->返回oData; 或 oData 为假 ---> 1 返回;

在这种情况下,您可以调用例如getFormatData(113)并断言返回值为 113,然后调用getFormatData(false)并断言返回值是 1。getFormatData 上没有更多要测试的内容。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM