如何模拟持有React Native本机模块功能的全局变量

时间:2019-11-08 09:59:01

标签: react-native testing react-native-native-module

在App.js中,我有类似的东西

Class App extends Component {
 constructor(props){
  super(props)
  global.test = NativeModules.TestClass
 }
}

在Test类中,我像这样使用它

Class Test extends Component {
 constructor(props){
  super(props)
  global.test.testFunction("Testing")
 }
}

那么如何为上述类模拟global.test.testFunction

1 个答案:

答案 0 :(得分:0)

我建议使用另一种全局函数方法,即变量。您可以为每个全局函数,变量(常量或枚举)创建一个Utils类,并在需要使用它们的任何位置导入Utils。

这是Utils类的一个非常基本的示例:

实用程序类

export default class Utils {

    static navigationRef = null;

    static showAlert(title, desc) {
        Alert.alert(title, desc);
    }
}

用法:

import Utils from "./shared/utils"

// Example of static function
Utils.showAlert("Hello" "Alert Description")

// Example of static variable
Utils.navigationRef = this.props.navigation;