javascript - 开玩笑测试只返回对象内的字符串
问题描述
我正在尝试进行一个开玩笑的测试,并认为期望,成为问题的一部分,因为我认为我正在比较的两个对象(数据、地名)是相同的。事实证明,他们不是。我的数据对象如下所示:
{"lat": "lat", "lng": "lng"}
znc 我的地名记录正确:
{lat: 'lat', lng: 'lng'}
我不知道为什么测试将所有内容都包含在对象数据字符串中,我无法弄清楚。这就是为什么我的期望没有执行。
这是我的代码:
describe('geonames', (url = 'https://geonamesapi.com', geonames = {lat: 'lat', lng: 'lng'},
projectData = {
zero: {
date: '03/19/2021',
place: 'city, state'
},
one: {
coord:
{
lat: '',
lng: ''
},
date: '',
place: '',
location1: '',
location2: ''
},
two: {
month: '',
day: '',
year: ''
},
three: {
high: '',
low: '',
forecast: ''
},
four: {
image: ''
}}, place = '', date = '', place1 = '', place2 = '', place_split = '', data = '') => {
place = projectData.zero.place;
projectData.zero.date = date
projectData.one.date = date
place_split = place.split(', ')
place1 = place_split[0]
place2 = place_split[1]
projectData.one.place = place
projectData.one.location1 = place1
projectData.one.location2 = place2
projectData.one.coord.lat = geonames.lat
projectData.one.coord.lng = geonames.lng
it('can get coordinates', async() => {
fetchMock.once(url, {
status: 200,
statusText: 'OK',
headers: {'Content-Type': 'application/json'},
sendAsJson: true,
body: JSON.stringify(geonames)
}, {method: 'GET'});
fetch(url, {
method: 'GET',
body: JSON.stringify({data: 'Received Payload'}),
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json',
}
})
.then(function(req){
expect(req.status).toEqual(200);
console.log(data)
return req.json();
})
.then(function (json) {
console.log(json.body);
data = json.body;
console.log(projectData)
console.log(data)
console.log(geonames)
expect(data).toMatchObject(geonames)
data = projectData
return data;
})
.then(async function(data) {
console.log(data);
expect(data).toEqual(projectData);
})
})
})
解决方案
我知道了。我不得不改变:
body: JSON.stringify(geonames)
至
body: {geonames}
推荐阅读
- python - cv2.imshow() 在循环中打开多个窗口
- javascript - 用户成功通过不和谐 Oauth 后如何运行文件?
- sqlite - 在数据库 sqlite3 中查询
- php - $_(美元下划线)变量是什么意思?
- javascript - 在 Ionic 5 中使用 Ionic Animation 的页面转换
- laravel - 当我启动 laravel echo 服务器时出现错误?
- python - 如何更改我的 seaborn catplot 中的数量或行数和列数
- linux - 获取具有高 I/O 读取请求的文件名
- python - 有没有一种简单的方法可以列出使用 python 中的 FHIR 包存在的所有 FHIR 资源?
- javascript - 由于 MIME 类型(“text/html”)不匹配(X-Content-Type-Options: nosniff)而被阻止