Estoy haciendo un pequeño marco de prueba que usa el patrón de módulo de JavaScript para pruebas de automatización de UI en iOS. Sin embargo, parece que estoy obteniendo resultados extraños basados en #import y extendiendo módulos.¿Cómo funciona #import en la Automatización de IU de iOS?
que tienen el módulo de prueba base llamada Tester-Module.js
:
(function() {
var Tester = this.Tester = {};
Tester.setUp = function() {
UIALogger.logMessage('Regular SetUp()');
}
}).call(this);
Si puedo importar este módulo en mi caso de prueba, funciona bien. Aquí está el archivo de prueba tester.js
(tester.js
es el archivo puedo importar en Instrumentos):
#import "./Tester-Module.js"
// Prints 'Regular SetUp()'
Tester.setUp();
Sin embargo, si intento de extender el módulo Tester-Module.js
en otro archivo de módulo, no puedo hacer referencia al objeto probador. Tester-Extension.js
extiende el módulo probador definido en Tester-Module.js
:
#import "./Tester-Module.js"
// Outputs:
// Exception raised while running script:
// ReferenceError: Can't find variable: Tester\n
Tester.setUp = function() {
UIALogger.logMessage('Overwritten SetUp()');
}
y el archivo de caso de prueba actualizada tester.js
:
#import "./Tester-Extension.js"
// Exception is thrown before this
Tester.setUp();
Mis preguntas de esperar relacionados son:
¿Por qué no puedo hacer referencia a la Probador objeto dentro de
Tester-Extension.js
, pero puede entester.js
?¿Qué hace #import macro?