• [Jest] Automate your migration to Jest using codemods


    Jest is a fantastic testing library, but maybe you've been putting off the switch because migrating all of your existing tests from another library seems like a daunting task. With jest-codemods, you can automate most, if not all, of that migration! The jest-codemods CLI is a wrapper around jscodeshift that is specifically focused on helping you migrate from several popular test runner and assertion library combinations to Jest. In this lesson, we'll walk through converting a small sampling of tests created with Mocha, Sinon and Chai over to Jest. We'll even take a look at a couple edge cases where the conversion requires some manual intervention so you can be prepared for those in your own project.

    Source code

    Install:

    npm i -D jest
    
    npm i -g jest-codemons

    Run:

    jest-codemods  # default path is under src

    There is a waring:

    "

    jest-codemods warning: (src/index.spec.js) Usage of package "sinon" might be incompatible with Jest

    "

      describe('once', () => {
        test('Only invokes the function once', () => {
          const fn = sinon.stub()
          const onceFn = once(fn)
          onceFn()
          onceFn()
          onceFn()
          onceFn()
          sinon.assert.calledOnce(fn)
        })
      })

    Change to:

      describe('once', () => {
        test('Only invokes the function once', () => {
          const fn = jest.fn();
          const onceFn = once(fn)
          onceFn()
          onceFn()
          onceFn()
          onceFn()
          expect(fn).toHaveBeenCalledTimes(1);
        })
      })

    One failed test:

    expect(result).to.eq(3)

    Change to:

    expect(result).toBe(3)
  • 相关阅读:
    洛谷 P2700 逐个击破
    洛谷 P1503 鬼子进村
    洛谷 P1556 幸福的路
    洛谷 P1490 买蛋糕
    洛谷 P2507 [SCOI2008]配对
    code vs 3305 水果姐逛水果街Ⅱ
    通过idea远程调试
    【Cocos2d-x JavaScript Binding】
    ☀【SeaJS】SeaJS Grunt构建
    -_-#【Better Code】throttle / debounce
  • 原文地址:https://www.cnblogs.com/Answer1215/p/9515376.html
Copyright © 2020-2023  润新知