transportador que llama a una función exportada dentro del mismo módulo

Soy más nuevo en usar Protractor para la automatización, así que perdóneme si esto termina siendo una pregunta tonta. Tengo un módulo helper.js con un montón de funciones que yo u otros miembros del equipo pueden usar. Una de las funciones de helper.js necesita llamar a una de las funciones existentes en el módulo.

es posible? He intentado varias formas diferentes de hacer esto y hasta ahora ninguna ha funcionado, aparte de dividir las funciones de ayuda en un archivo js separado al que necesito llamar.

Ejemplo: helper.js:

 module.exports = { newbrowsertab: function(){  }, anotherfunction: function(){    }, anotherfunction2: function(){  } }; 

En la llamada a la función newbrowsertab, he intentado:

  • module.newbrowsertab();
  • this.newbrowsertab();
  • self.newbrowsertab();

Podrías usar herencia prototípica entonces:

 // helper.js functions // create object var Util = function() {}; // extend object Util.prototype.enterPassword = function() { // code }; // extend object Util.prototype.clickLogin = function() { // code }; // use `this` to call functions in same module Util.prototype.fullLogin = function() { // extend object this.enterPassword(); this.clickLogin(); }; module.exports = new Util(); 

Luego en su archivo de prueba:

 var Util = require('./path/to/helper.js); Util.fullLogin(); 

etc …

Ampliación de la convención prototípica.

Cualquier función que solo sea ayudante para otras funciones exportadas podría nombrarse con un guión bajo y declararse para ejecutarse más tarde.

 function _helperFunction(){ // do something // return something } var exposedFunction = function() { // do something var x = _helperFunction(); // Do something else } module.exports = { exposedFunction : exposedFunction };