我有一个如下所示的函数:
const config = require('../config')
getLabel (objectList) {
if (config.labeling.currentVersion === 'v1') {
// Do something on objectList
return true
}
if (config.labeling.currentVersion === 'v2') {
// Do something on objectList
return false
}
}并且想要为它编写测试。我是node.js的新手,不确定如何编写测试,以使其涵盖上述示例中的两个if语句,因为该函数需要配置文件中的一些参数,而配置文件是固定的。有没有办法传入这个配置?我完全不知道如何解决这个问题,因此任何帮助或线索,这是非常感谢。我必须指出,现在在我的配置文件中,currentVersion被设置为v1,我所拥有的测试内容如下所示,编解码器表明第二个if语句没有包含在此测试中(daah):
const labeler = require('../../src/lib/labeler')
describe('Labeling Unit Testing', () => {
it('should get the label', () => {
let label1 = labeler.getLabel([1, 2, 3])
let label2 = labeler.getLabel([1, 2, 3])
return assert.equal(label1, label2)
})发布于 2019-06-19 01:37:15
有几种不同的方法可以实现这一点。其中一个更简单的方法是消除对配置的直接依赖,并允许您交换将要使用的版本。您可以通过稍微更改签名来采用另一个参数,该参数具有使用配置的默认值:
getLabel(objectList, currentVersion = config.labeling.currentVersion) {
if (currentVersion === 'v1') {
// Do something on objectList
return true
}
if (currentVersion === 'v2') {
// Do something on objectList
return false
}
}这提供了您正在寻找的灵活性,同时不会强迫其他人关心指定版本。
https://stackoverflow.com/questions/56653999
复制相似问题