我正在尝试使用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) 我有一个主 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?