在 React.js 中使用 Jest 模拟 Bing 地图 API
Mock Bing Maps API with Jest in React.js
在我的 Jest 测试中,我需要生成一个 Bing 地图图钉,如下所示:
it('...', () => {
var e = new window.Microsoft.Maps.Pushpin({ "latitude": 56.000, "longitude": 46.000 }, {});
/* do stuff */
expect(e.getColor()).toEqual('#ffd633');
})
但是当我 运行 测试时我得到了错误:
TypeError: Cannot read property 'Maps' of undefined
有人知道如何模拟 Bing 地图 API Microsoft 在 React 中与 Jest 交互吗?
一种选择是引入 Bing Maps API 类 mock 并通过 beforeAll
Jest setup function 注册它,如下所示:
const setupBingMapsMock = () => {
const Microsoft = {
Maps: {
Pushpin : class {
location = null;
options = null;
constructor(location,options) {
this.location = location;
this.options = options;
}
getColor(){
return this.options.color;
}
}
}
};
global.window.Microsoft = Microsoft;
};
beforeAll(() => {
setupBingMapsMock();
});
it("creates a marker", () => {
const e = new window.Microsoft.Maps.Pushpin(
{ latitude: 56.0, longitude: 46.0 },
{'color': '#ffd633'}
);
expect(e.getColor()).toEqual("#ffd633");
});
结果
在我的 Jest 测试中,我需要生成一个 Bing 地图图钉,如下所示:
it('...', () => {
var e = new window.Microsoft.Maps.Pushpin({ "latitude": 56.000, "longitude": 46.000 }, {});
/* do stuff */
expect(e.getColor()).toEqual('#ffd633');
})
但是当我 运行 测试时我得到了错误:
TypeError: Cannot read property 'Maps' of undefined
有人知道如何模拟 Bing 地图 API Microsoft 在 React 中与 Jest 交互吗?
一种选择是引入 Bing Maps API 类 mock 并通过 beforeAll
Jest setup function 注册它,如下所示:
const setupBingMapsMock = () => {
const Microsoft = {
Maps: {
Pushpin : class {
location = null;
options = null;
constructor(location,options) {
this.location = location;
this.options = options;
}
getColor(){
return this.options.color;
}
}
}
};
global.window.Microsoft = Microsoft;
};
beforeAll(() => {
setupBingMapsMock();
});
it("creates a marker", () => {
const e = new window.Microsoft.Maps.Pushpin(
{ latitude: 56.0, longitude: 46.0 },
{'color': '#ffd633'}
);
expect(e.getColor()).toEqual("#ffd633");
});
结果