【发布时间】:2020-03-20 23:49:08
【问题描述】:
我正在尝试运行一个玩笑测试,并认为期望,成为问题的一部分,因为我认为我正在比较的两个对象(数据、地理名称)是相同的。事实证明,他们不是。我的数据对象如下所示:
{"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);
})
})
})
【问题讨论】:
标签: javascript node.js express jestjs