Javascript 如何对依赖Firebase引用的函数进行单元测试?
我想对应用程序中调用和更新Firebase引用的函数进行单元测试。我面临的问题是,当我尝试运行测试并导入包含函数的文件时,我得到以下错误Javascript 如何对依赖Firebase引用的函数进行单元测试?,javascript,node.js,firebase,webpack,babeljs,Javascript,Node.js,Firebase,Webpack,Babeljs,我想对应用程序中调用和更新Firebase引用的函数进行单元测试。我面临的问题是,当我尝试运行测试并导入包含函数的文件时,我得到以下错误SyntaxError:JSON中的意外标记u位于位置0,它指向函数文件中导入我对Firebase引用的行 我在这个项目上使用Webpack和Babel,所以我尝试在Webpack.config文件中设置一个resolve.alias,该文件在应用程序运行时有效,但在我运行npm测试时无效。此时,我不知道如何模拟Firebase引用,以便测试该函数的其他函数。下
SyntaxError:JSON中的意外标记u位于位置0
,它指向函数文件中导入我对Firebase引用的行
我在这个项目上使用Webpack和Babel,所以我尝试在Webpack.config文件中设置一个resolve.alias
,该文件在应用程序运行时有效,但在我运行npm测试时无效。此时,我不知道如何模拟Firebase引用,以便测试该函数的其他函数。下面是一些示例代码:
常量/index.js
actions/settings.js
您使用的测试框架是什么?使用AngularFire和Angular会更容易,因为您可以在DI中传递模拟类,但我也测试了服务器端的非AngularJS。然后我使用Sinon获取模拟初始化EAPP并返回一个模拟firebase应用程序
你也可以试试,我不需要走那么远,但我已经看到了它的建议。这样,您就基本上截取了导入,并将其交换为可以测试的内容。您使用的是什么测试框架?使用AngularFire和Angular会更容易,因为您可以在DI中传递模拟类,但我也测试了服务器端的非AngularJS。然后我使用Sinon获取模拟初始化EAPP并返回一个模拟firebase应用程序
你也可以试试,我不需要走那么远,但我已经看到了它的建议。通过这种方式,您实际上是在截取导入并将其交换为可以测试的内容。尝试使用Json.parse(Json.stringify(data))@kamesh我假设您正在谈论替换这个Json.parse(unescape(${config.FIREBASE_config}))
?尝试使用Json.parse(Json.stringify(data))@kamesh我假设您正在谈论替换这个JSON.parse(unescape(${config.FIREBASE\u config}))
?我正在使用Mocha来运行测试。剩下的就是React和Redux。我用摩卡来运行测试。我剩下的就是反应和重复。
import firebase from 'firebase';
const firebaseConfig = JSON.parse(unescape(`${config.FIREBASE_CONFIG}`));
const mainApp = firebase.initializeApp(firebaseConfig);
export const ref = mainApp.database().ref();
import * as actions from './';
import { ref } from '../constants';
export const updateSetting = (e, value) =>
(dispatch) => {
ref.child('setting')
.set(value)
.then(() => {
dispatch(actions.confirmFBSave());
})
.catch((err) => {
dispatch(actions.failFBSave({ text: err.code }));
});
};