开玩笑-服务的模拟答案

时间:2018-12-12 14:52:28

标签: callback promise mocking jestjs

我上个月一直在写测试。而且,我已经模拟了一些Promise /回调,并且可以毫无问题地使用它。

但是我有一个情况,我不知道如何测试?:
上下文:我有一个外部服务调用(可与回调一起使用),但我收到了信息,对其进行处理,然后将其解析为对我的应用程序的承诺。

版本0:

00. const processDataFunction = (data) => { 
01.  ... a lot of work ...
02.
03.  return beautyData
04. }
05. 
06. export const myCoolFunction = (args) => {
07.  const externalService = new ExternalService();
08.
09.  return new Promise((resolve, reject) => {
10.    externalService.functionWithCallback(args, (response, status) => {
11.      if (status === 'OK') {
12.         resolve(processDataFunction(response))
13.      } else {
14.         resolve({ error: status })
15.      }
16.    }
17.  });
18.}
19.

我的第一步是基于How to test callback function with Jasmine

隔离函数,同时导出和测试两者

所以,现在我有: 版本1:

lib.js:

export const processDataFunction = (data) => { ... }) // As previous but exported to be able to test it

export const coolFunction = (data) => { ... }) //  Just as previous

lib.test.js:

it('test processDataFunction') // Receive raw data and return beauty data is ok

it ('test coolFunction') // It initialized service and call the specific (mocked) function.

我不喜欢导出私有函数的想法,但这是我能做的最好的方法,而且确实很酷。但是,我仍然缺少1件东西。

问题::当我在覆盖范围内运行测试时,我缺少回调函数的测试(版本0中第11至15行中的 ),我该怎么办?测试那个(如果失败的话)?

0 个答案:

没有答案