代码之家  ›  专栏  ›  技术社区  ›  itaied

如何使用jest和socket.io结束测试

  •  2
  • itaied  · 技术社区  · 7 年前

    在我的项目中我使用 jest 作为一名试飞员。
    测试纯函数很容易,
    但我发现自己在与 开玩笑 的期望。

    我想使用 socket.io 是的。

      test('async', (done) => {
        const s = createConnection(config.port)
    
        s.on(WORLD, () => {
            expect(true).toBe(true)
            done()
        })
        s.emit(HELLO)
      })
    

    运行此测试可以正常工作,套接字客户端发送一条消息,
    然后收到回应并期待 done 是的。
    问题是当预期失败时, 开玩笑 把它当作一个错误,
    这个 完成 别打电话给我,我得把它包起来 try-catch 阻止:

      test('async', (done) => {
        const s = createConnection(config.port)
    
        s.on(WORLD, () => {
          try {
            expect(false).toBe(true)
            done()
          } catch (e) {
            done(e)
          }
        })
        s.emit(HELLO)
      })
    

    以这种方式编写测试(用 试接球 块)
    很乏味,我想知道有没有一种方式可以开玩笑
    失败后继续跑步 expect .

    0 回复  |  直到 6 年前