feat: add vim.md regex.md cheatsheet. 9ff36a3ac3

This commit is contained in:
jaywcjlove
2022-10-01 19:24:21 +00:00
parent 2d29a6c38d
commit 811895f4c5
26 changed files with 13793 additions and 9877 deletions

View File

@ -40,13 +40,14 @@
</div></div><div class="h2wrap-body"><div class="wrap"><div class="wrap-header h3wrap"><h3 id="介绍"><a aria-hidden="true" tabindex="-1" href="#介绍"><span class="icon icon-link"></span></a>介绍</h3><div class="wrap-body">
<p><a href="https://jestjs.io/">Jest</a> 是一款优雅、简洁的 JavaScript 测试框架。</p>
<ul>
<li>无需配置,大多数 JS 项目中即装即用,无需配置</li>
<li>优秀接口,从 it 到 expect - Jest 将工具包整合在一处。文档齐全、不断维护,非常不错。</li>
<li>隔离的,并行进行测试,发挥每一丝算力。</li>
<li>快照, 轻松编写持续追踪大型对象的测试,并在测试旁或代码内显示实时快照。</li>
<li>代码覆盖, 无需其他操作,您仅需添加 --coverage 参数来生成代码覆盖率报告。</li>
<li><code>无需配置</code> 大多数 JS 项目中即装即用,无需配置</li>
<li><code>优秀接口</code><code>it</code><code>expect</code> - Jest 将工具包整合在一处。文档齐全、不断维护,非常不错。</li>
<li><code>隔离的</code> 并行进行测试,发挥每一丝算力。</li>
<li><code>快照</code> 轻松编写持续追踪大型对象的测试,并在测试旁或代码内显示实时快照。</li>
<li><code>代码覆盖</code> 无需其他操作,您仅需添加 <code>--coverage</code> 参数来生成代码覆盖率报告。</li>
</ul>
</div></div></div><div class="wrap col-span-2"><div class="wrap-header h3wrap"><h3 id="测试结构"><a aria-hidden="true" tabindex="-1" href="#测试结构"><span class="icon icon-link"></span></a>测试结构</h3><div class="wrap-body"><!--rehype:wrap-class=col-span-2-->
</div></div></div><div class="wrap col-span-2"><div class="wrap-header h3wrap"><h3 id="测试结构"><a aria-hidden="true" tabindex="-1" href="#测试结构"><span class="icon icon-link"></span></a>测试结构</h3><div class="wrap-body">
<!--rehype:wrap-class=col-span-2-->
<pre class="language-js"><code class="language-js code-highlight"><span class="code-line line-number" line="1"><span class="token function">describe</span><span class="token punctuation">(</span><span class="token string">'makePoniesPink'</span><span class="token punctuation">,</span> <span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token arrow operator">=></span> <span class="token punctuation">{</span>
</span><span class="code-line line-number" line="2"> <span class="token function">beforeAll</span><span class="token punctuation">(</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token arrow operator">=></span> <span class="token punctuation">{</span>
</span><span class="code-line line-number" line="3"> <span class="token comment">/* 在所有测试之前运行 */</span>
@ -153,7 +154,8 @@
</span><span class="code-line line-number" line="13"> expect<span class="token punctuation">.</span><span class="token method function property-access">anything</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">,</span>
</span><span class="code-line line-number" line="14"><span class="token punctuation">]</span><span class="token punctuation">)</span>
</span></code></pre>
</div></div></div><div class="wrap row-span-2"><div class="wrap-header h3wrap"><h3 id="模拟函数"><a aria-hidden="true" tabindex="-1" href="#模拟函数"><span class="icon icon-link"></span></a>模拟函数</h3><div class="wrap-body"><!--rehype:wrap-class=row-span-2-->
</div></div></div><div class="wrap row-span-2"><div class="wrap-header h3wrap"><h3 id="模拟函数"><a aria-hidden="true" tabindex="-1" href="#模拟函数"><span class="icon icon-link"></span></a>模拟函数</h3><div class="wrap-body">
<!--rehype:wrap-class=row-span-2-->
<pre class="language-js"><code class="language-js code-highlight"><span class="code-line line-number" line="1"><span class="token comment">// const fn = jest.fn()</span>
</span><span class="code-line line-number" line="2"><span class="token comment">// const fn = jest.fn().mockName('Unicorn') -- 命名为 mock, Jest 22+</span>
</span><span class="code-line line-number" line="3"><span class="token comment">// 函数被调用</span>
@ -185,14 +187,14 @@
</span></code></pre>
</div></div><div class="h3wrap-body"><div class="wrap"><div class="wrap-header h4wrap"><h4 id="别名"><a aria-hidden="true" tabindex="-1" href="#别名"><span class="icon icon-link"></span></a>别名</h4><div class="wrap-body">
<ul>
<li><code>toBeCalled</code><code>toHaveBeenCalled</code></li>
<li><code>toBeCalledWith</code><code>toHaveBeenCalledWith</code></li>
<li><code>lastCalledWith</code><code>toHaveBeenLastCalledWith</code></li>
<li><code>nthCalledWith</code><code>toHaveBeenNthCalledWith</code></li>
<li><code>toReturnTimes</code><code>toHaveReturnedTimes</code></li>
<li><code>toReturnWith</code><code>toHaveReturnedWith</code></li>
<li><code>lastReturnedWith</code><code>toHaveLastReturnedWith</code></li>
<li><code>nthReturnedWith</code><code>toHaveNthReturnedWith</code></li>
<li><code>toBeCalled</code><code>toHaveBeenCalled</code></li>
<li><code>toBeCalledWith</code><code>toHaveBeenCalledWith</code></li>
<li><code>lastCalledWith</code><code>toHaveBeenLastCalledWith</code></li>
<li><code>nthCalledWith</code><code>toHaveBeenNthCalledWith</code></li>
<li><code>toReturnTimes</code><code>toHaveReturnedTimes</code></li>
<li><code>toReturnWith</code><code>toHaveReturnedWith</code></li>
<li><code>lastReturnedWith</code><code>toHaveLastReturnedWith</code></li>
<li><code>nthReturnedWith</code><code>toHaveNthReturnedWith</code></li>
</ul>
</div></div></div></div></div><div class="wrap"><div class="wrap-header h3wrap"><h3 id="杂项"><a aria-hidden="true" tabindex="-1" href="#杂项"><span class="icon icon-link"></span></a>杂项</h3><div class="wrap-body">
<pre class="language-js"><code class="language-js code-highlight"><span class="code-line line-number" line="1"><span class="token comment">// 检查对象是否是类的实例。</span>
@ -270,10 +272,11 @@
</span></code></pre>
</div></div><div class="h3wrap-body"><div class="wrap"><div class="wrap-header h4wrap"><h4 id="别名-1"><a aria-hidden="true" tabindex="-1" href="#别名-1"><span class="icon icon-link"></span></a>别名</h4><div class="wrap-body">
<ul>
<li><code>toThrowError</code><code>toThrow</code></li>
<li><code>toThrowError</code><code>toThrow</code></li>
</ul>
</div></div></div></div></div></div></div><div class="wrap"><div class="wrap-header h2wrap"><h2 id="异步测试"><a aria-hidden="true" tabindex="-1" href="#异步测试"><span class="icon icon-link"></span></a>异步测试</h2><div class="wrap-body">
</div></div><div class="h2wrap-body"><div class="wrap row-span-2"><div class="wrap-header h3wrap"><h3 id="实例"><a aria-hidden="true" tabindex="-1" href="#实例"><span class="icon icon-link"></span></a>实例</h3><div class="wrap-body"><!--rehype:wrap-class=row-span-2-->
</div></div><div class="h2wrap-body"><div class="wrap row-span-2"><div class="wrap-header h3wrap"><h3 id="实例"><a aria-hidden="true" tabindex="-1" href="#实例"><span class="icon icon-link"></span></a>实例</h3><div class="wrap-body">
<!--rehype:wrap-class=row-span-2-->
<p>请参阅 Jest 文档中的 <a href="https://jestjs.io/docs/en/tutorial-async">更多示例</a></p>
<p>在异步测试中指定一些预期的断言是一个很好的做法,所以如果你的断言根本没有被调用,测试将会失败。</p>
<pre class="language-js"><code class="language-js code-highlight"><span class="code-line line-number" line="1"><span class="token function">test</span><span class="token punctuation">(</span><span class="token string">'async test'</span><span class="token punctuation">,</span> <span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token arrow operator">=></span> <span class="token punctuation">{</span>
@ -296,7 +299,8 @@
</span><span class="code-line line-number" line="5"> <span class="token function">expect</span><span class="token punctuation">(</span>result<span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token method function property-access">toBe</span><span class="token punctuation">(</span><span class="token boolean">true</span><span class="token punctuation">)</span>
</span><span class="code-line line-number" line="6"><span class="token punctuation">}</span><span class="token punctuation">)</span>
</span></code></pre>
</div></div></div><div class="wrap row-span-2"><div class="wrap-header h3wrap"><h3 id="done-回调"><a aria-hidden="true" tabindex="-1" href="#done-回调"><span class="icon icon-link"></span></a>done() 回调</h3><div class="wrap-body"><!--rehype:wrap-class=row-span-2-->
</div></div></div><div class="wrap row-span-2"><div class="wrap-header h3wrap"><h3 id="done-回调"><a aria-hidden="true" tabindex="-1" href="#done-回调"><span class="icon icon-link"></span></a>done() 回调</h3><div class="wrap-body">
<!--rehype:wrap-class=row-span-2-->
<pre class="language-js"><code class="language-js code-highlight"><span class="code-line line-number" line="1"><span class="token function">test</span><span class="token punctuation">(</span><span class="token string">'async test'</span><span class="token punctuation">,</span> <span class="token punctuation">(</span><span class="token parameter">done</span><span class="token punctuation">)</span> <span class="token arrow operator">=></span> <span class="token punctuation">{</span>
</span><span class="code-line line-number" line="2"> expect<span class="token punctuation">.</span><span class="token method function property-access">assertions</span><span class="token punctuation">(</span><span class="token number">1</span><span class="token punctuation">)</span>
</span><span class="code-line line-number" line="3">
@ -313,7 +317,7 @@
</span><span class="code-line line-number" line="14"> <span class="token punctuation">}</span><span class="token punctuation">)</span>
</span><span class="code-line line-number" line="15"><span class="token punctuation">}</span><span class="token punctuation">)</span>
</span></code></pre>
<p>将断言包装在 try/catch 块中,否则 Jest 将忽略失败</p>
<p>将断言包装在 <code>try/catch</code> 块中,否则 <code>Jest</code> 将忽略失败</p>
</div></div></div><div class="wrap"><div class="wrap-header h3wrap"><h3 id="promises"><a aria-hidden="true" tabindex="-1" href="#promises"><span class="icon icon-link"></span></a>Promises</h3><div class="wrap-body">
<pre class="language-js"><code class="language-js code-highlight"><span class="code-line line-number" line="1"><span class="token function">test</span><span class="token punctuation">(</span><span class="token string">'async test'</span><span class="token punctuation">,</span> <span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token arrow operator">=></span> <span class="token punctuation">{</span>
</span><span class="code-line line-number" line="2"> expect<span class="token punctuation">.</span><span class="token method function property-access">assertions</span><span class="token punctuation">(</span><span class="token number">1</span><span class="token punctuation">)</span>
@ -323,9 +327,10 @@
</span><span class="code-line line-number" line="6"> <span class="token punctuation">}</span><span class="token punctuation">)</span>
</span><span class="code-line line-number" line="7"><span class="token punctuation">}</span><span class="token punctuation">)</span>
</span></code></pre>
<p>从你的测试中 <em>返回</em> 一个 Promise</p>
<p>从你的测试中 <em>返回</em> 一个 <code>Promise</code></p>
</div></div></div></div></div><div class="wrap"><div class="wrap-header h2wrap"><h2 id="模拟"><a aria-hidden="true" tabindex="-1" href="#模拟"><span class="icon icon-link"></span></a>模拟</h2><div class="wrap-body">
</div></div><div class="h2wrap-body"><div class="wrap row-span-2"><div class="wrap-header h3wrap"><h3 id="模拟函数-1"><a aria-hidden="true" tabindex="-1" href="#模拟函数-1"><span class="icon icon-link"></span></a>模拟函数</h3><div class="wrap-body"><!--rehype:wrap-class=row-span-2-->
</div></div><div class="h2wrap-body"><div class="wrap row-span-2"><div class="wrap-header h3wrap"><h3 id="模拟函数-1"><a aria-hidden="true" tabindex="-1" href="#模拟函数-1"><span class="icon icon-link"></span></a>模拟函数</h3><div class="wrap-body">
<!--rehype:wrap-class=row-span-2-->
<pre class="language-js"><code class="language-js code-highlight"><span class="code-line line-number" line="1"><span class="token function">test</span><span class="token punctuation">(</span><span class="token string">'call the callback'</span><span class="token punctuation">,</span> <span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token arrow operator">=></span> <span class="token punctuation">{</span>
</span><span class="code-line line-number" line="2"> <span class="token keyword">const</span> callback <span class="token operator">=</span> jest<span class="token punctuation">.</span><span class="token method function property-access">fn</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
</span><span class="code-line line-number" line="3"> <span class="token function">fn</span><span class="token punctuation">(</span>callback<span class="token punctuation">)</span>
@ -351,7 +356,8 @@
<pre class="language-js"><code class="language-js code-highlight"><span class="code-line line-number" line="1"><span class="token keyword">const</span> callback <span class="token operator">=</span> jest<span class="token punctuation">.</span><span class="token method function property-access">fn</span><span class="token punctuation">(</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token arrow operator">=></span> <span class="token boolean">true</span><span class="token punctuation">)</span>
</span></code></pre>
<p><a href="https://jestjs.io/docs/en/mock-function-api">模拟函数文档</a></p>
</div></div></div><div class="wrap row-span-2"><div class="wrap-header h3wrap"><h3 id="返回解析和拒绝值"><a aria-hidden="true" tabindex="-1" href="#返回解析和拒绝值"><span class="icon icon-link"></span></a>返回、解析和拒绝值</h3><div class="wrap-body"><!--rehype:wrap-class=row-span-2-->
</div></div></div><div class="wrap row-span-2"><div class="wrap-header h3wrap"><h3 id="返回解析和拒绝值"><a aria-hidden="true" tabindex="-1" href="#返回解析和拒绝值"><span class="icon icon-link"></span></a>返回、解析和拒绝值</h3><div class="wrap-body">
<!--rehype:wrap-class=row-span-2-->
<p>您的模拟可以返回值:</p>
<pre class="language-js"><code class="language-js code-highlight"><span class="code-line line-number" line="1"><span class="token keyword">const</span> callback
</span><span class="code-line line-number" line="2"> <span class="token operator">=</span> jest<span class="token punctuation">.</span><span class="token method function property-access">fn</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token method function property-access">mockReturnValue</span><span class="token punctuation">(</span><span class="token boolean">true</span><span class="token punctuation">)</span>
@ -383,7 +389,7 @@
</span></code></pre>
<p><a href="https://jestjs.io/docs/en/jest-object#jestmockmodulename-factory-options">jest.mock docs</a></p>
<blockquote>
<p>注意:当使用 <code>babel-jest</code> 时,对 <code>jest.mock</code> 的调用将自动提升到代码块的顶部。 如果您想明确避免这种行为,请使用 <code>jest.doMock</code></p>
<p>注意:当使用 <code>babel-jest</code> 时,对 <code>jest.mock</code> 的调用将自动提升到代码块的顶部。 如果您想明确避免这种行为,请使用 <code>jest.doMock</code></p>
</blockquote>
</div></div></div><div class="wrap"><div class="wrap-header h3wrap"><h3 id="使用模拟文件模拟模块"><a aria-hidden="true" tabindex="-1" href="#使用模拟文件模拟模块"><span class="icon icon-link"></span></a>使用模拟文件模拟模块</h3><div class="wrap-body">
<p>创建一个类似 <code>__mocks__/lodash/memoize.js</code> 的文件:</p>
@ -412,7 +418,8 @@
</span><span class="code-line line-number" line="6"> <span class="token punctuation">.</span><span class="token method function property-access">spyOn</span><span class="token punctuation">(</span><span class="token dom variable">location</span><span class="token punctuation">,</span> <span class="token string">'title'</span><span class="token punctuation">,</span> <span class="token string">'set'</span><span class="token punctuation">)</span>
</span><span class="code-line line-number" line="7"> <span class="token punctuation">.</span><span class="token method function property-access">mockImplementation</span><span class="token punctuation">(</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token arrow operator">=></span> <span class="token punctuation">{</span><span class="token punctuation">}</span><span class="token punctuation">)</span>
</span></code></pre>
</div></div></div><div class="wrap row-span-3"><div class="wrap-header h3wrap"><h3 id="定时器模拟"><a aria-hidden="true" tabindex="-1" href="#定时器模拟"><span class="icon icon-link"></span></a>定时器模拟</h3><div class="wrap-body"><!--rehype:wrap-class=row-span-3-->
</div></div></div><div class="wrap row-span-3"><div class="wrap-header h3wrap"><h3 id="定时器模拟"><a aria-hidden="true" tabindex="-1" href="#定时器模拟"><span class="icon icon-link"></span></a>定时器模拟</h3><div class="wrap-body">
<!--rehype:wrap-class=row-span-3-->
<p>为使用本机计时器函数(<code>setTimeout</code><code>setInterval</code><code>clearTimeout</code><code>clearInterval</code>)的代码编写同步测试。</p>
<pre class="language-js"><code class="language-js code-highlight"><span class="code-line line-number" line="1"><span class="token comment">// 启用假计时器</span>
</span><span class="code-line line-number" line="2">jest<span class="token punctuation">.</span><span class="token method function property-access">useFakeTimers</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
@ -450,7 +457,8 @@
</span><span class="code-line line-number" line="6"> <span class="token literal-property property">set</span><span class="token operator">:</span> setTitle<span class="token punctuation">,</span>
</span><span class="code-line line-number" line="7"><span class="token punctuation">}</span><span class="token punctuation">)</span>
</span></code></pre>
</div></div></div><div class="wrap row-span-2"><div class="wrap-header h3wrap"><h3 id="清除和恢复模拟"><a aria-hidden="true" tabindex="-1" href="#清除和恢复模拟"><span class="icon icon-link"></span></a>清除和恢复模拟</h3><div class="wrap-body"><!--rehype:wrap-class=row-span-2-->
</div></div></div><div class="wrap row-span-2"><div class="wrap-header h3wrap"><h3 id="清除和恢复模拟"><a aria-hidden="true" tabindex="-1" href="#清除和恢复模拟"><span class="icon icon-link"></span></a>清除和恢复模拟</h3><div class="wrap-body">
<!--rehype:wrap-class=row-span-2-->
<p>对于一个模拟</p>
<pre class="language-js"><code class="language-js code-highlight"><span class="code-line line-number" line="1"><span class="token comment">// 清除模拟使用日期</span>
</span><span class="code-line line-number" line="2"><span class="token comment">// fn.mock.calls、fn.mock.instances</span>
@ -461,7 +469,7 @@
</span><span class="code-line line-number" line="7">fn<span class="token punctuation">.</span><span class="token method function property-access">mockRestore</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
</span></code></pre>
<blockquote>
<p>注意:<code>mockRestore</code> 仅适用于由<code>jest.spyOn</code> 创建的模拟。对于所有模拟:</p>
<p>注意:<code>mockRestore</code> 仅适用于由<code>jest.spyOn</code> 创建的模拟。对于所有模拟:</p>
</blockquote>
<pre class="language-js"><code class="language-js code-highlight"><span class="code-line line-number" line="1"><span class="token comment">// 清除所有 mock 的 </span>
</span><span class="code-line line-number" line="2"><span class="token comment">// mock.calls、mock.instances、</span>
@ -508,8 +516,9 @@
</span><span class="code-line line-number" line="6"> <span class="token punctuation">}</span><span class="token punctuation">)</span>
</span><span class="code-line line-number" line="7"><span class="token punctuation">}</span><span class="token punctuation">)</span>
</span></code></pre>
<p><a href="https://jestjs.io/docs/en/api#describeeachtablename-fn-timeout">describe.each() 文档</a><a href="https://jestjs.io/docs/en/api#testeachtablename-fn-timeout">test.each() 文档</a>,</p>
</div></div></div></div></div><div class="wrap"><div class="wrap-header h2wrap"><h2 id="跳过测试"><a aria-hidden="true" tabindex="-1" href="#跳过测试"><span class="icon icon-link"></span></a>跳过测试</h2><div class="wrap-body"><!--rehype:body-class=cols-2-->
<p><a href="https://jestjs.io/docs/en/api#describeeachtablename-fn-timeout">describe.each()</a> 文档<a href="https://jestjs.io/docs/en/api#testeachtablename-fn-timeout">test.each()</a> 文档</p>
</div></div></div></div></div><div class="wrap"><div class="wrap-header h2wrap"><h2 id="跳过测试"><a aria-hidden="true" tabindex="-1" href="#跳过测试"><span class="icon icon-link"></span></a>跳过测试</h2><div class="wrap-body">
<!--rehype:body-class=cols-2-->
</div></div><div class="h2wrap-body cols-2"><div class="wrap"><div class="wrap-header h3wrap"><h3 id="不要运行这些测试"><a aria-hidden="true" tabindex="-1" href="#不要运行这些测试"><span class="icon icon-link"></span></a>不要运行这些测试</h3><div class="wrap-body">
<pre class="language-js"><code class="language-js code-highlight"><span class="code-line line-number" line="1">describe<span class="token punctuation">.</span><span class="token method function property-access">skip</span><span class="token punctuation">(</span><span class="token string">'makePoniesPink'</span><span class="token spread operator">...</span>
</span><span class="code-line line-number" line="2">tests<span class="token punctuation">.</span><span class="token method function property-access">skip</span><span class="token punctuation">(</span><span class="token string">'make each pony pink'</span><span class="token spread operator">...</span>
@ -518,7 +527,8 @@
<pre class="language-js"><code class="language-js code-highlight"><span class="code-line line-number" line="1">describe<span class="token punctuation">.</span><span class="token method function property-access">only</span><span class="token punctuation">(</span><span class="token string">'makePoniesPink'</span><span class="token spread operator">...</span>
</span><span class="code-line line-number" line="2">tests<span class="token punctuation">.</span><span class="token method function property-access">only</span><span class="token punctuation">(</span><span class="token string">'make each pony pink'</span><span class="token spread operator">...</span>
</span></code></pre>
</div></div></div></div></div><div class="wrap"><div class="wrap-header h2wrap"><h2 id="测试有副作用的模块"><a aria-hidden="true" tabindex="-1" href="#测试有副作用的模块"><span class="icon icon-link"></span></a>测试有副作用的模块</h2><div class="wrap-body"><!--rehype:body-class=cols-1-->
</div></div></div></div></div><div class="wrap"><div class="wrap-header h2wrap"><h2 id="测试有副作用的模块"><a aria-hidden="true" tabindex="-1" href="#测试有副作用的模块"><span class="icon icon-link"></span></a>测试有副作用的模块</h2><div class="wrap-body">
<!--rehype:body-class=cols-1-->
</div></div><div class="h2wrap-body cols-1"><div class="wrap"><div class="wrap-header h3wrap"><h3 id="实例-1"><a aria-hidden="true" tabindex="-1" href="#实例-1"><span class="icon icon-link"></span></a>实例</h3><div class="wrap-body">
<pre class="language-js"><code class="language-js code-highlight"><span class="code-line line-number" line="1"><span class="token keyword">const</span> modulePath <span class="token operator">=</span> <span class="token string">'../module-to-test'</span>
</span><span class="code-line line-number" line="2"><span class="token function">afterEach</span><span class="token punctuation">(</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token arrow operator">=></span> <span class="token punctuation">{</span>
@ -535,11 +545,10 @@
</span><span class="code-line line-number" line="13"> <span class="token function">expect</span><span class="token punctuation">(</span>fn<span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token method function property-access">toThrow</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
</span><span class="code-line line-number" line="14"><span class="token punctuation">}</span><span class="token punctuation">)</span>
</span></code></pre>
<p>Node.js 和 Jest 会缓存你需要的模块。 要测试具有副作用的模块,您需要在测试之间重置模块注册表</p>
<p><code>Node.js</code><code>Jest</code> 会缓存你需要的模块。 要测试具有副作用的模块,您需要在测试之间重置模块注册表</p>
</div></div></div></div></div><div class="wrap"><div class="wrap-header h2wrap"><h2 id="另见"><a aria-hidden="true" tabindex="-1" href="#另见"><span class="icon icon-link"></span></a>另见</h2><div class="wrap-body">
<ul>
<li><a href="https://github.com/sapegin/jest-cheat-sheet">Jest cheat sheet</a> <em>(github.com)</em></li>
<li><a href="https://github.com/sapegin/jest-cheat-sheet">Jest cheat sheet</a> <em>(github.com)</em></li>
</ul>
</div></div></div></div></div><footer class="footer-wrap"><footer class="max-container">© 2022 Kenny Wang, All rights reserved.</footer></footer></body>
</html>