首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用玩笑测试快速路

用玩笑测试快速路
EN

Stack Overflow用户
提问于 2018-12-23 23:46:26
回答 1查看 14.3K关注 0票数 7

我想用JEST测试我的express API端点。

下面是我的Express API代码。

routs.ts

代码语言:javascript
复制
// Get release notes
routes.get('/release-notes', (req, res) => {
  request.get({
    url: 'https://host.com/rest/api/content/search?cql=parent=209266565',
    json: true
  })
    .pipe(res);
});

export default routes;

上面的代码将返回数据,但是我想用模拟测试API,而不是发出API请求。

因此,我手动创建了一个模拟响应,并需要用它验证代码。

Mock.ts

代码语言:javascript
复制
export const releaseNotesMockData = {
  'results': [
    {
      'id': '206169942',
      'type': 'page',
      'status': 'current',
      'title': 'Release 2018-10-18 Full Flow CM00294965',
    }]
};

使用下面的代码,我命中了真正的API,并且测试通过了

代码语言:javascript
复制
describe('Test a 200', () => {
    test('It should respond with a 200 status', async () => {
      const response = await request(app).get('/release-notes');
      expect(response.statusCode).toBe(200);
    });
  });

问题是,我不想使用真正的API进行测试,而是想使用Mocks进行测试。

下面是我尝试过的代码,但它没有工作。请帮帮忙

routs.test.ts

代码语言:javascript
复制
describe('api test', () => {
  const url = '/release-notes';
  it('user GET should be 200', async () => {
    const result = await http({
      url,
      method: 'get'
    });
    expect(result).toBe('200');
  });
});
EN

回答 1

Stack Overflow用户

发布于 2018-12-24 01:59:01

问题是,您没有模拟要导入的request模块。

有关嘲笑的详细信息,请参阅https://jestjs.io/docs/en/tutorial-async

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53908027

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档