angular 中使用 IIFE 的单元测试抛出引用错误?
Unit testing in angular using IIFE throw a reference error?
我目前正在使用 IIFE(立即调用的函数表达式)为驱动程序脚本编写一个简单的测试用例。这是我的驱动程序脚本。
driver.js
(function() {
"use strict";
var app = angular
.module("myApp", [
"ui.bootstrap",
"ui.sortable"
]);
}());
这是我的规格 driver.spec.js
describe("application configuration tool driver", function() {
it("should create an angular module named myTest", function() {
expect(app).toEqual(angular.module("myApp"));
});
});
当我 运行 我的规范使用 IIFE 时。我收到 ReferenceError: app is not defined.
如果我运行没有IIFE的驱动脚本:
var app = angular
.module("myApp", [
"ui.bootstrap",
"ui.sortable"
]);
我的规范通过了。对使用 IIFE 通过规范有什么想法吗?
您可以将 app
移回外部范围(当然,如果您可以选择的话):
var app;
(function(app) {
"use strict";
app = angular
.module("myApp", [
"ui.bootstrap",
"ui.sortable"
]);
}(app));
我目前正在使用 IIFE(立即调用的函数表达式)为驱动程序脚本编写一个简单的测试用例。这是我的驱动程序脚本。
driver.js
(function() {
"use strict";
var app = angular
.module("myApp", [
"ui.bootstrap",
"ui.sortable"
]);
}());
这是我的规格 driver.spec.js
describe("application configuration tool driver", function() {
it("should create an angular module named myTest", function() {
expect(app).toEqual(angular.module("myApp"));
});
});
当我 运行 我的规范使用 IIFE 时。我收到 ReferenceError: app is not defined.
如果我运行没有IIFE的驱动脚本:
var app = angular
.module("myApp", [
"ui.bootstrap",
"ui.sortable"
]);
我的规范通过了。对使用 IIFE 通过规范有什么想法吗?
您可以将 app
移回外部范围(当然,如果您可以选择的话):
var app;
(function(app) {
"use strict";
app = angular
.module("myApp", [
"ui.bootstrap",
"ui.sortable"
]);
}(app));