- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想了解 this example ,所以我尝试的第一件事是删除他的axiosConfig.js
,所以这个例子看起来更像我想解决的当前案例。但是我收到此错误
- Expected
+ Received
Object {
+ "baseURL": "https://jsonplaceholder.typicode.com/albums",
"method": "get",
"url": "/3/photos?_limit=3",
},
Number of calls: 1
39 | const photos = await getPhotosByAlbumID(3);
40 | expect(axios.request).toHaveBeenCalled();
> 41 | expect(axios.request).toHaveBeenCalledWith({ method: 'get', url: '/3/photos?_limit=3' })
| ^
42 | expect(photos.length).toEqual(3);
43 | expect(photos[0].albumId).toEqual(3)
44 | });
问题
baseURL: 'https://jsonplaceholder.typicode.com/albums'
来自
getPhotosByAlbumId()
, 但是有
axios.request()
没有意义没有
baseURL
.
const axios = require('axios');
const getPhotosByAlbumId = async (id) => {
const result = await axios.request({
baseURL: 'https://jsonplaceholder.typicode.com/albums',
method: 'get',
url: `/${id}/photos?_limit=3`
});
const { data } = result;
return data;
};
module.exports = getPhotosByAlbumId;
index.spec.js
const axios = require('axios');
const getPhotosByAlbumID = require('./index');
jest.mock('axios', () => {
return {
baseURL: 'https://jsonplaceholder.typicode.com/albums',
request: jest.fn().mockResolvedValue({
data: [
{
albumId: 3,
id: 101,
title: 'incidunt alias vel enim',
url: 'https://via.placeholder.com/600/e743b',
thumbnailUrl: 'https://via.placeholder.com/150/e743b'
},
{
albumId: 3,
id: 102,
title: 'eaque iste corporis tempora vero distinctio consequuntur nisi nesciunt',
url: 'https://via.placeholder.com/600/a393af',
thumbnailUrl: 'https://via.placeholder.com/150/a393af'
},
{
albumId: 3,
id: 103,
title: 'et eius nisi in ut reprehenderit labore eum',
url: 'https://via.placeholder.com/600/35cedf',
thumbnailUrl: 'https://via.placeholder.com/150/35cedf'
}
]
})
}
})
describe('test getPhotosByAlbumID ', () => {
afterEach(() => jest.resetAllMocks());
it('fetches photos by album id', async () => {
const photos = await getPhotosByAlbumID(3);
expect(axios.request).toHaveBeenCalled();
expect(axios.request).toHaveBeenCalledWith({ method: 'get', url: '/3/photos?_limit=3' })
expect(photos.length).toEqual(3);
expect(photos[0].albumId).toEqual(3)
});
});
最佳答案
因为在您的实现中,您正在调用 axios.request
使用具有 baseURL 的对象,它与您的断言不匹配。
因此,您可以断言必须使用具有 baseURL 的对象调用它
expect(axios.request).toHaveBeenCalledWith({
baseURL: "https://jsonplaceholder.typicode.com/albums",
method: "get",
url: "/3/photos?_limit=3",
});
或者调用该方法的对象必须具有以下两个属性:
expect(axios.request).toHaveBeenCalledWith(
expect.objectContaining({ method: "get", url: "/3/photos?_limit=3" })
);
working example
关于javascript - 尝试用 Jest 制作一个简单的 Axios 模拟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64787640/
冷静下来,不吹不黑。 01 最近半年,互联网一款现象级的应用诞生:「ChatGPT」; 其火爆的程度,不输前面的羊了个羊; 最初了解到ChatGP
在了解在 .Net 中开发是什么样子之前,我有几个新手问题: 非管理员用户能否安装 .Net 框架,无论是原始包还是运行程序所需的任何后续更新?我们的一些客户锁定了 XP/Vista 主机,当我们上传
https://plus.google.com/u/1/110412141990454266397/posts/Nvr6Se6eAPh 有谁知道如何使用最新版本的 GWT(来自 svn)和 Chrom
已关闭。此问题不符合Stack Overflow guidelines 。目前不接受答案。 要求我们推荐或查找书籍、工具、软件库、教程或其他场外资源的问题对于 Stack Overflow 来说是偏离
我需要在加载 NSDocument 之前创建多个窗口,或者创建一个阻止 NSDocument 窗口和顶部菜单的窗口。 我尝试了几种解决方案 - 但它们都不起作用。 模态窗口,一个接一个。 Async
尝试配置 spring 3 MVC,这是我目前所做的: 我将所有 spring 3.0 库添加到我的 netbeans 项目中。 我的 web.xml 是: WebApp
As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be
我无法让 Resharper 的清理代码停止更改如下属性: public long Value { get { return _thingy; } se
我并不是真的在寻找基本的 SQL 指南,而是寻找特定于 PostgreSQL 的东西。 而且我确实运行自己的服务器,因此获取最新版本(我相信是 8.2?)没问题。 最佳答案 重要的事情: 如果可以(既
这是 Adobe Encore 程序的屏幕截图。 在这里,您可以看到一组深色组件。 可以购买,下载等吗?它们是从 Adobe Cor. 公开的吗? 谢谢 最佳答案 实现这种外观和感觉的最简单方
我有一个代码(可以正常工作)用于使用 C++ Builder 来引导 word。它对于访问文档中的不同书签很有用。 Variant vNom, vWDocuments, vWDocument, vMS
我是一名优秀的程序员,十分优秀!