小编use*_*993的帖子

使用axios.create()编写测试axios-mock-adapter

我想测试我的http服务,但出现错误。所以,我的测试文件

api.js

import axios from 'axios';

export const api = axios.create();
Run Code Online (Sandbox Code Playgroud)

fetchUsers.js

import api from './api';
export const fetchUsers = (params) api.get('/api/users', { params })
  .then(({data}) => data)
Run Code Online (Sandbox Code Playgroud)

fetchUsers.spec.js

import MockAdapter from 'axios-mock-adapter'
import api from './api';
const mock = new MockAdapter(api);

describe('fetchUsers', () => {
  it('should send request', (done) => {
    const data = { data: ['user'] };
    mock.onGet('/api/users').reply(200, data);

    fetchUsers().then((response) => {
      expect(response).toEqual(data.data);
      done();
    });
  });
});
Run Code Online (Sandbox Code Playgroud)

但是我在这里出错

错误:在连接时将ECONNREFUSED 127.0.0.1:80连接到TCPConnectWrap.after [as oncomplete](net.js:1158:14)

如果我将api.js中的axios.create()替换为axios,则它可以正常工作。但是如何测试创建的axios实例呢?创建它时,我需要在那里添加参数。

有人可以帮忙吗?

jestjs axios axios-mock-adapter

5
推荐指数
1
解决办法
4290
查看次数

Http服务缓存

我正在尝试在Angular应用程序中为http服务实现缓存.

我的代码在服务countriesService

  public get(): Observable<any> {
    return this.http.get(`/countries`, {})
      .map(res => res.json())
      .publishReplay(1)
      .refCount();
  }
Run Code Online (Sandbox Code Playgroud)

在组件CountriesComponent中,我有

  ngOnInit() {
    this.countriesService.get()
      .subscribe(res => {
        this.countries = res.countries;
      });
  }
Run Code Online (Sandbox Code Playgroud)

我在路由配置中加载组件

const appRoutes: Routes = [
  { path: 'countries', component: CountriesComponent },
  { path: 'cities', component: CitiesComponent },
];
Run Code Online (Sandbox Code Playgroud)

每当我从城市返回国家时,我都会看到=>/countries的请求.它不应该激活请求,因为它应该被缓存(这是它在角度1.x中使用promises的工作方式),而不是角度4和rxJs.

caching http rxjs angular

4
推荐指数
1
解决办法
6756
查看次数

jQuery单击外部标记

我有html,例如

<body><div id="main"><p>some text</p></div></div></div></body>
Run Code Online (Sandbox Code Playgroud)

当你点击外部#main时如何在jquery上制作,但在标签体内有一些动作?

$(":not(#main)").click({..});
Run Code Online (Sandbox Code Playgroud)

不工作

jquery

0
推荐指数
1
解决办法
244
查看次数

标签 统计

angular ×1

axios ×1

axios-mock-adapter ×1

caching ×1

http ×1

jestjs ×1

jquery ×1

rxjs ×1