From baee7723a86760b82fd0b8158ecb62a12c80f611 Mon Sep 17 00:00:00 2001 From: afeiship Date: Wed, 12 Dec 2018 10:05:35 +0800 Subject: [PATCH] wip --- docs/2018-12/2018-12-10/009-async.md | 21 ------------------- .../2018-12-11/001-resolves-rejects.md | 21 +++++++++++++++++++ src/2018-12/2018-12/async.test.js | 20 +++++++++++++++--- 3 files changed, 38 insertions(+), 24 deletions(-) create mode 100644 docs/2018-12/2018-12-11/001-resolves-rejects.md diff --git a/docs/2018-12/2018-12-10/009-async.md b/docs/2018-12/2018-12-10/009-async.md index 74771ca..8435db7 100644 --- a/docs/2018-12/2018-12-10/009-async.md +++ b/docs/2018-12/2018-12-10/009-async.md @@ -39,24 +39,3 @@ test('the fetch fails with an error', () => { }); ``` - - -## .resolves / .rejects - -您还可以使用 .resolves 匹配器在您期望的声明,Jest 会等待这一 Promise 来解决。如果 Promise 被拒绝,则测试将自动失败。 -```js -test('the data is peanut butter', () => { - expect.assertions(1); - return expect(fetchData()).resolves.toBe('peanut butter'); -}); -``` -一定要返回承诺 - 如果你省略 return 语句,您的测试将在 fetchData 完成之前完成。 - -如果你想要 Promise 被拒绝,使用 .catch 方法。 它参照工程 .resolves 匹配器。 如果 Promise 被拒绝,则测试将自动失败。 -```js -test('the fetch fails with an error', () => { - expect.assertions(1); - return expect(fetchData()).rejects.toMatch('error'); -}); -``` - diff --git a/docs/2018-12/2018-12-11/001-resolves-rejects.md b/docs/2018-12/2018-12-11/001-resolves-rejects.md new file mode 100644 index 0000000..907ae89 --- /dev/null +++ b/docs/2018-12/2018-12-11/001-resolves-rejects.md @@ -0,0 +1,21 @@ +# resolves/rejects: + +## .resolves / .rejects + +您还可以使用 .resolves 匹配器在您期望的声明,Jest 会等待这一 Promise 来解决。如果 Promise 被拒绝,则测试将自动失败。 +```js +test('the data is peanut butter', () => { + expect.assertions(1); + return expect(fetchData()).resolves.toBe('peanut butter'); +}); +``` +一定要返回承诺 - 如果你省略 return 语句,您的测试将在 fetchData 完成之前完成。 + +如果你想要 Promise 被拒绝,使用 .catch 方法。 它参照工程 .resolves 匹配器。 如果 Promise 被拒绝,则测试将自动失败。 +```js +test('the fetch fails with an error', () => { + expect.assertions(1); + return expect(fetchData()).rejects.toMatch('error'); +}); +``` + diff --git a/src/2018-12/2018-12/async.test.js b/src/2018-12/2018-12/async.test.js index 47b2a5b..15fe21a 100644 --- a/src/2018-12/2018-12/async.test.js +++ b/src/2018-12/2018-12/async.test.js @@ -1,7 +1,15 @@ -function fetchData(inCallback){ - setTimeout(()=>{ +function fetchData(inCallback) { + setTimeout(() => { inCallback('peanut butter') - },2000) + }, 2000) +} + +function fetchWithPromise() { + return new Promise((resolve, reject) => { + setTimeout(() => { + resolve('peanut butter') + }, 1000) + }) } // fetch async: @@ -11,4 +19,10 @@ test('the data is peanut butter', done => { done(); } fetchData(callback); +}); + +test('testa data is peanut butter with promise',()=>{ + fetchWithPromise().then(response=>{ + expect(response).toBe('peanut butter'); + }); }); \ No newline at end of file