【发布时间】:2021-04-19 10:19:26
【问题描述】:
我需要像这样测试一个调用:
const queryBuilder = getConnection('default')
.createQueryBuilder(Reading, 'r')
.where("r.code = :code AND um = 'KWH'", { code: meter.code })
.andWhere(" measure_date BETWEEN to_date(:startDate,'YYYY-MM-DD') AND to_date(:endDate,'YYYY-MM-DD')", {
startDate,
endDate,
})
.andWhere('r.deleted_at IS NULL')
.orderBy('r.measure_date', 'DESC')
.addOrderBy('r.reading_type')
.addOrderBy('r.band', 'ASC');
const readings = await queryBuilder.getMany();
我的测试:
const fakeSelectQueryBuilder = createStubInstance(typeorm.SelectQueryBuilder);
fakeSelectQueryBuilder.where.returnsThis();
fakeSelectQueryBuilder.andWhere.returnsThis();
fakeSelectQueryBuilder.addOrderBy.returnsThis();
fakeSelectQueryBuilder.orderBy.returnsThis();
fakeSelectQueryBuilder.getMany.resolves([]);
const fakeConnection = createStubInstance(typeorm.Connection);
fakeConnection.createQueryBuilder.resolves(fakeSelectQueryBuilder);
但我收到:
ConnectionNotFoundError: Connection "default" was not found.
我尝试了很多解决方案,但都没有奏效。 有什么建议吗?
谢谢大家
【问题讨论】:
-
getConnection函数从何而来?请附上代码 -
这是一个typeorm函数,用于在多个连接之间进行选择typeorm.io/#/connection/working-with-connection-1
-
您使用的是
jestjs还是sinonjs?嘲讽? -
我正在使用 sinon,我还用一些(错误的)测试更新了我的问题
-
您使用 sinon 作为 stub 库并使用 jestjs 作为您的测试运行器?
标签: node.js testing jestjs mocking typeorm