首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何根据配置文件使用if else语句为代码编写单元测试

如何根据配置文件使用if else语句为代码编写单元测试
EN

Stack Overflow用户
提问于 2019-06-19 01:09:13
回答 1查看 367关注 0票数 0

我有一个如下所示的函数:

代码语言:javascript
复制
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):

代码语言:javascript
复制
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)
  })
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-06-19 01:37:15

有几种不同的方法可以实现这一点。其中一个更简单的方法是消除对配置的直接依赖,并允许您交换将要使用的版本。您可以通过稍微更改签名来采用另一个参数,该参数具有使用配置的默认值:

代码语言:javascript
复制
getLabel(objectList, currentVersion = config.labeling.currentVersion) {
  if (currentVersion === 'v1') {
    // Do something on objectList
    return true
  }
  if (currentVersion === 'v2') {
    // Do something on objectList
    return false
  }
}

这提供了您正在寻找的灵活性,同时不会强迫其他人关心指定版本。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56653999

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档