Realizzo un piccolo framework di test che utilizza il modello di modulo JavaScript per i test di automazione dell'interfaccia utente su iOS. Tuttavia, mi sembra di ottenere risultati strani basati su #import e sull'estensione dei moduli.Come funziona #import nell'automazione UI di iOS?
ho il modulo di test di base denominata Tester-Module.js
:
(function() {
var Tester = this.Tester = {};
Tester.setUp = function() {
UIALogger.logMessage('Regular SetUp()');
}
}).call(this);
Se importare questo modulo nel mio banco di prova, funziona benissimo. Ecco il file di prova tester.js
(tester.js
è il file importare in Instruments):
#import "./Tester-Module.js"
// Prints 'Regular SetUp()'
Tester.setUp();
Tuttavia, se cerco di estendere il modulo Tester-Module.js
in un altro file del modulo, non riesco a fare riferimento all'oggetto Tester. Tester-Extension.js
estende il modulo Tester definito 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()');
}
e il file di test case aggiornato tester.js
:
#import "./Tester-Extension.js"
// Exception is thrown before this
Tester.setUp();
Le mie domande si spera correlati sono:
Perchè non posso fare riferimento al Tester object inside
Tester-Extension.js
, ma può intester.js
?Che cosa fa la macro #import?