首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在单元测试中全局使用createConnection()和TypeORM?

如何在单元测试中全局使用createConnection()和TypeORM?
EN

Stack Overflow用户
提问于 2020-06-06 05:51:16
回答 2查看 812关注 0票数 0

我有一个正文

代码语言:javascript
运行
复制
// index.ts
import { createConnection } from "typeorm";
createConnection().then(async connection => {
    // express app code here
}).catch(error => console.log(error));

现在,我想使用jest编写单元测试用例,并且我希望连接可以跨测试可用。

代码语言:javascript
运行
复制
// abc.test.ts
createConnection().then(async connection => {

    describe('ABC controller tests', () => {
        it('should test abc function1', async () => {
            // test body does here                
        });       
    });
}).catch(error => console.log(error));

我有几点担心:

  • 这是我第一次与TypeORM合作,所以我没有任何实际经验。
  • 它甚至不起作用&抛出SyntaxError: Cannot use import statement outside a module
  • 这看起来是一种非常丑陋的方法
  • 我希望连接只在一个地方生成代码,而不是在每个测试文件中,但是对于像应用程序有index.ts这样的测试,没有入口点。

如何在单元测试中全局使用createConnection()和TypeORM?

EN

回答 2

Stack Overflow用户

发布于 2020-06-06 06:02:37

您应该使用beforeEachafterEach来设置状态/上下文/世界。类似于:

代码语言:javascript
运行
复制
describe('ABC controller tests', () => {
    let connection: Connection

    beforeEach(async () => {
      connection = await createConnection()
    })

    it('should test abc function1', async () => {
        connection.doSomething()
    })

    afterEach(async () => {
        await connection.close()
    })
  })
票数 3
EN

Stack Overflow用户

发布于 2020-06-06 06:06:33

你应该能够

jest.setup.js(setupFilesAfterEnv)

代码语言:javascript
运行
复制
// Promise<Connection>
global.connection = createConnection()

然后你可以等待承诺在你的测试中被解决。

abc.test.ts

代码语言:javascript
运行
复制
describe('abc', () => {
  beforeAll(async () => {
    await global.connection
  });

  it('should be connected', () => {
    // not sure if that property really exists
    expect(global.connection).toHaveProperty('isConnected', true)
  })
})
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62227913

复制
相关文章

相似问题

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