我正在尝试对文件中的方法进行简单测试-将Jasmine与Karma结合使用:
测试规范
define([
"water/EventUtils",
"_Common"
], function(
EventUtils,
_Common
) {
describe("_Common", () => {
describe('getDatasourceConfigFromId', () => {
it("makes sure EventUtils method called correctly", () => {
const queryMethod = spyOn(EventUtils.DataSourceConfigStore, 'query');
_Common.getDatasourceConfigFromId('123');
expect(queryMethod).toHaveBeenCalledWith('123');
});
});
});
});
这是我正在_Common.js中测试的内容:
getDatasourceConfigFromId: function(ds_id) {
return EventUtils.DataSourceConfigStore.query({
id: ds_id
})[0];
}
这是我嘲笑的EventUtils.js
define([], function() {
return {
DataSourceConfigStore: {
query: (data) => [data]
}
};
});
每次运行测试我都会得到:
TypeError:在http://path/to/_Common.js(第9行)中未定义EventUtils.DataSourceConfigStore.query(...)
任何人都知道为什么未定义?
如果我
console.log(EventUtils.DataSourceConfigStore.query)
返回
(data) => [data]