繁体   English   中英

我可以对单个结果进行多个开玩笑测试吗?

Can I have multiple jest tests asserting on a single result?

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

我想写很多小测试来断言一个只计算一次的result ,所以我写了这个结构:

(注意外部的beforeAllbeforeEach以及内部的beforeAll

describe("service", ()=>{
  beforeAll(async ()=>{
    await initDb()
  })

  beforeEach(async ()=>{
    await resetConnection()
  })

  afterEach(async ()=>{
    await cleanDb()
  })

  describe("#getDetails", ()=>{
    describe("with a normal user", ()=>{
      let result

      beforeAll(async ()=>{
        const user = await createDbUserEntity()
        result = await service.getDetails(user)
      })

      it("should have a count of 1", ()=>{
        expect(result.count).toEqual(1)
      })

      it("should not have a relationship", ()=>{
        expect(result.rel).toNotBeDefined()
      })
    })

    describe("with two related users", ()=>{
      let result

      beforeAll(async ()=>{
        const user = await createDbUser({related: createDbUser()})
        result = await service.getDetails(user)
      })

      it("should have a count of 2", ()=>{
        expect(result.count).toEqual(1)
      })

      it("should have a relationship", ()=>{
        expect(result.rel).toEqual({foo:"bar"})
      })
    })

  })
})

不幸的是,内部beforeAll在外部beforeEach之前运行,所以实际上没有任何效果,因为当内部 beforeAll 运行时连接没有被重置。

有没有办法使用 Jest 来编写我想要的这些小测试? 对于一组测试, result只计算一次,所以我可以编写测试,准确表达我的组织对我们业务规则的看法?

因为像这样的小测试,测试报告最终会得到很好的名字,比如“ service #getDetails with two related users should have count of 2 ”,这完全符合我组织的领域知识。

问题暂未有回复.您可以查看右边的相关问题.
1 在单个笑话测试中模拟多个模块

我在开玩笑的时候遇到了一个问题。 我可以为每个测试文件模拟 1 个模块,但我无法为单个 Jest 测试模拟多个模块。 前任 但这会导致错误,因为其中 1 个模拟不起作用。 有没有办法模拟这两个模块,因为我在我的班级的快照测试中都需要它们。 ...

3 是否可以测试笑话测试?

我想制作一个可以测试不同练习的工具。 一种练习是单元测试。 因此,我需要测试学生所做的测试是否是好的测试。 因此,例如,学生具有以下代码: 通过以下笑话测试: 我该如何测试学生确实测试了这两项测试? 我想过 然后测试firstTest是否测试正确的东西。 但是缺 ...

4 如何在redux-saga的笑话测试中产生多个值

我刚刚开始为使用Redux-sagas和生成器功能的React Native项目使用Jest编写测试。 我没有太多的测试经验,所以如果这是基本知识,请原谅我的无知。 我有以下函数,该函数基于从另一个函数产生的结果定义变量。 我不知道如何模拟多个变量... 我的功能 我的测 ...

5 如何写一个笑话测试在我的 LWC

我是新手,尤其是在 LWC 中使用 jest 测试。 我想测试闪电文件上传功能是否有效,我是否只是使用 jest.mock 创建一个带有任何数据文件(例如 csv 文件?)的模拟对象? 但是我如何让 lwc 把它当作一个上传的文件呢? 任何指导将不胜感激! ...

6 我如何运行笑话测试

我已经对__tests__文件夹进行了hello World测试:hello-test.js: 我的目标是最终在es6中编写测试并使用gulp任务运行。 我尝试使用以下gulp任务运行以上命令: 我还尝试使用全局安装jest-cli运行jest,但无法使其正常工作,我也尝试使用 ...

7 用笑话测试@ ngrx / Effect

我试图在本文之后用Jest测试@ ngrx / Effect,但无论如何我都会遇到相同的错误。 我也遵循的官方文档也无济于事。 我不明白我在这里做错了什么:( 角度:6.1.0 ngrx:6.1.0 我也在使用@ nrwl / nx(6.3.0) 我的规格文件: ...

8 模拟测试笑话文档

我在react组件中有一个像这样的函数: 和一些测试是这样的: 您可以看到,第一个测试通过了,但是第二个测试(“应该调用setNavigationSectionActive”)失败了: 我认为原因是因为文件没有被嘲笑,所以if失败了。 但是,在实际的实现中,当执行此 ...

10 即使 function 通过,Jest 测试也会失败

即使 function 执行时返回 true,这个笑话案例也会失败。 在测试用例中,我断言 toBeTruthy 因为 function 对相同的参数返回 true。 在控制台日志中,我可以看到expect返回 true,但是当我断言时,它返回 false。 示例测试用例是:- 要测试的样品 fun ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2022 STACKOOM.COM