Javascript 如何对依赖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引用,以便测试该函数的其他函数。下

我想对应用程序中调用和更新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 }));
      });
  };