小编Ash*_*era的帖子

sinon存根不替换功能

我正在尝试使用sinon存根来替换可能需要时间的函数.但是当我运行测试时,测试代码似乎没有使用sinon存根.

这是我要测试的代码.

function takeTooLong() {
    return  returnSomething();
}

function returnSomething() {
    return new Promise((resolve) => {
        setTimeout(() => {
          resolve('ok')
        }, 1500)
    })
}

module.exports = {
  takeTooLong,
  returnSomething
}
Run Code Online (Sandbox Code Playgroud)

这是测试代码.

const chai = require('chai')
chai.use(require('chai-string'))
chai.use(require('chai-as-promised'))
const expect = chai.expect
chai.should()
const db = require('./database')
const sinon = require('sinon')
require('sinon-as-promised')

describe('Mock the DB connection', function () {

it('should use stubs for db connection for takeTooLong', function (done) {

    const stubbed = sinon.stub(db, 'returnSomething').returns(new Promise((res) => res('kk')));
    const result = …
Run Code Online (Sandbox Code Playgroud)

javascript unit-testing mocha.js node.js sinon

6
推荐指数
1
解决办法
6534
查看次数

如何在 Airflow 中动态创建子标签

我有一个主 dag,它检索文件并将该文件中的数据拆分为单独的 csv 文件。我必须为这些 csv 文件的每个文件完成另一组任务。例如(上传到 GCS,插入到 BigQuery)如何根据文件数量为每个文件动态生成一个 SubDag?SubDag 将定义上传到 GCS、插入到 BigQuery、删除 csv 文件等任务)

所以现在,这就是它的样子

main_dag = DAG(....)
download_operator = SFTPOperator(dag = main_dag, ...)  # downloads file
transform_operator = PythonOperator(dag = main_dag, ...) # Splits data and writes csv files

def subdag_factory(): # Will return a subdag with tasks for uploading to GCS, inserting to BigQuery.
    ...
    ...
Run Code Online (Sandbox Code Playgroud)

如何为在 transform_operator 中生成的每个文件调用 subdag_factory?

airflow

5
推荐指数
1
解决办法
5379
查看次数

标签 统计

airflow ×1

javascript ×1

mocha.js ×1

node.js ×1

sinon ×1

unit-testing ×1