Home > Web Front-end > JS Tutorial > body text

Adding Jest To Explainer.js

Susan Sarandon
Release: 2024-11-10 09:02:02
Original
190 people have browsed it

This week we were supposed to add test to our cli tool. So far the most frustrating thing to do.

Why I chose Jest

I'm a huge supporter for TDD(Test Driven Development). Almost every piece code should be tested. During my co-op more than half of the time I spent writing test for my PR. I believe that experience really helped me understand the necessity of testing. I was surprised to see how similar the testing framework in JS and Ruby are. I used Jest which is very similar to RSpec I have used during my co-op. To mock http resquest I used Nock kinda similar to something called VCR.

Issues I have faced (A lot of em)

Main problem I faced was I used ESM instead of CommonJS. Which made my life much harder. First issue was jest.mock not working. After some research I realized the way to mock is different in ESM. Unfortunately even after following the docs I could not get it to work. So, I had to do jest.spyOn. Second issue I faced was since execa runs in child_process the index.test.js although runs it does not effect the coverage report. So I had to use jest.spyOn to rewrite the test. I also had to refactor index.js so that it does not take the flags I'm passing to jest. Other smaller issue I faced was, using node --experimental-vm-modules --no-warnings node_modules/jest/bin/jest.js -c jest.config.mjs instead of jest -c jest.config.mjs cause I was using ESM. I also had to use mock-fs to replicate file system to test FilepathResolver.test.js because simple jest.spyOn did not test it thoroughly enough. I was surprised how many roadblocks were cause by just using ESM and it just reflects what a mess JS is.

After a lot of trial error I got a pretty good coverage.

Adding Jest To Explainer.js

The above is the detailed content of Adding Jest To Explainer.js. For more information, please follow other related articles on the PHP Chinese website!

source:dev.to
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Latest Articles by Author
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template