我正在寻找可用于模拟与Azure的连接以执行单元测试的任何方法。是否有任何可用的可靠的模拟npm模块。
答案 0 :(得分:0)
Jest is a general purpose JavaScript testing framework。它提供了几种在模块/导入级别以及单个函数上进行模拟的不同方法。还有其他选项,例如Sinon可以嘲笑,但我发现Jest具备了开箱即用所需的一切。
答案 1 :(得分:0)
我打算沿着这条路模拟 cosmo 客户端和数据库容器。
jest.mock('@azure/cosmos', () => {
return {
CosmosClient: jest.fn(() => ({
database: jest.fn(() => ({
container: jest.fn(() => ({
items: {
query: jest.fn(() => ({
fetchAll: jest.fn(() => ({
resources: [{ cat: 'dog' }],
})),
})),
},
})),
})),
})),
}
用于模拟以下内容
const client: CosmosClient = new CosmosClient('...')
const database: Database = client.database('...')
const container: Container = database.container('...')
const querySpec = {
query: `SELECT * from ...`,
}
const response: Model[] = await (
await container.items.query(querySpec).fetchAll()
).resources