Tôi đang tạo một khung thử nghiệm nhỏ sử dụng mẫu mô-đun JavaScript cho thử nghiệm Tự động hóa giao diện người dùng trên iOS. Tuy nhiên, tôi dường như nhận được kết quả kỳ quặc dựa trên #import và mở rộng mô-đun.#import hoạt động như thế nào trong Tự động hóa Giao diện người dùng của iOS?
tôi có các mô-đun kiểm tra cơ sở gọi là Tester-Module.js
:
(function() {
var Tester = this.Tester = {};
Tester.setUp = function() {
UIALogger.logMessage('Regular SetUp()');
}
}).call(this);
Nếu tôi import module này trong trường hợp thử nghiệm của tôi, nó hoạt động tốt. Dưới đây là file test tester.js
(tester.js
là file tôi nhập khẩu trong Instruments):
#import "./Tester-Module.js"
// Prints 'Regular SetUp()'
Tester.setUp();
Tuy nhiên, nếu tôi cố gắng mở rộng các mô-đun Tester-Module.js
trong một tập tin mô-đun, tôi không thể tham chiếu đến các đối tượng Tester. Tester-Extension.js
mở rộng các mô-đun Tester quy định tại 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()');
}
Và cập nhật kiểm tra trường hợp tập tin tester.js
:
#import "./Tester-Extension.js"
// Exception is thrown before this
Tester.setUp();
tôi câu hỏi liên quan hy vọng là:
Tại sao tôi không thể tham chiếu Đối tượng thử nghiệm bên trong
Tester-Extension.js
, nhưng có thể trongtester.js
?Macro #import làm gì?