【发布时间】:2023-03-28 23:20:01
【问题描述】:
我正在使用带有 Jasmine 的 Testem 来设置一个环境,以便在我的 AngularJS 应用程序中开始单元测试。在我第一次尝试使用注射器之前,一切都很好。这是我回来的:
test.js
describe('Custom events', function(){
beforeEach(module('AlchemyAdmin'));
beforeEach(inject());
it('should work', function() {
});
});
错误控制台输出:
Custom events should work.
✘ Error: [$injector:modulerr] http://errors.angularjs.org/1.2.25/$in
jector/modulerr?p0=AlchemyAdmin&p1=Error%3A%20%5B%24injector%3Amodulerr%
5D%20http%3A%2F%2Ferrors.angularjs.org%2F1.2.25%2F%24injector%2Fmodulerr
%3Fp0%3DdateRangePicker%26p1%3DError%253A%2520%255B%2524injector%253Amod
ulerr%255D%2520http%253A%252F%252Ferrors.angularjs.org%252F1.2.25%252F%2
524injector%252Fmodulerr%253Fp0%253Dpasvaz.bindonce%2526p1%253DError%252
53A%252520%25255B%252524injector%25253Anomod%25255D%252520http%25253A%25
252F%25252Ferrors.angularjs.org%25252F1.2.25%25252F%252524injector%25252
Fnomod%25253Fp0%25253Dpasvaz.bindonce%25250A%252520%252520%252520%252520
at%252520Error%252520(native)%25250A%252520%252520%252520%252520at%25252
0http%25253A%25252F%25252Flocalhost%25253A7357%25252Fvendor%25252Fangula
r%25252Fangular.min.js%25253A6%25253A450%25250A%252520%252520%252520%252
520at%252520http%25253A%25252F%25252Flocalhost%25253A7357%25252Fvendor%2
5252Fangular%25252Fangular.min.js%25253A20%25253A494%25250A%252520%25252
0%252520%252520at%252520http%25253A%25252F%25252Flocalhost%25253A7357%25
252Fvendor%25252Fangular%25252Fangular.min.js%25253A21%25253A502%25250A%
252520%252520%252520%252520at%252520http%25253A%25252F%25252Flocalhost%2
5253A7357%25252Fvendor%25252Fangular%25252Fangular.min.js%25253A33%25253
A267%25250A%252520%252520%252520%252520at%252520r%252520(http%25253A%252
52F%25252Flocalhost%25253A7357%25252Fvendor%25252Fangular%25252Fangular.
min.js%25253A7%25253A290)%25250A%252520%252520%252520%252520at%252520e%2
52520(http%25253A%25252F%25252Flocalhost%25253A7357%25252Fvendor%25252Fa
ngular%25252Fangular.min.js%25253A33%25253A207)%25250A%252520%252520%252
520%252520at%252520http%25253A%25252F%25252Flocalhost%25253A7357%25252Fv
endor%25252Fangular%25252Fangular.min.js%25253A33%25253A284%25250A%25252
似乎我缺少一些明显的东西,但我无法完全掌握它。请注意,使用beforeEach(inject()); 删除行并在it 块中编写标准测试就像一个魅力。另外,如果我只是声明一个angular.module('myApp');,然后尝试module() 和inject(),它工作正常。似乎我的模块定义中发生了一些事情,但应用程序本身运行良好,没有任何错误!
有人遇到这个或知道我应该调查什么吗?提前致谢!
编辑:
我认为如果我为我的问题提供一些背景信息可能会更有意义。我已经开发 Angular 应用程序几个星期了,而且由于没有进行单元测试,我已经有过好几次了。决定从现在开始进行 TDD,我设置了 Testem,编写了一个 .spec.js 文件并尝试开始。我没有测试任何现有的代码,这将在稍后出现,而只是尝试测试我正在使用的应用程序的一部分。在编写我的第一段代码或测试之前,仅根据文档设置 module() 和 inject() 调用就惨遭失败。这就是我现在的位置。
【问题讨论】:
-
你对
beforeEach(inject())的期望是什么? -
PSL:目前,我只是希望它不会抛出那个错误。就像我在编辑中解释的那样,如果我通过
angular.module('myApp',[])和module('myApp');inject()创建一个“空”模块,我不会收到错误消息。我正在尝试使用我已经拥有的模块到达那个地方。 -
但是,如果您根本不注入任何东西,为什么不能删除该行?或者
beforeEach(inject(function(){})),但这对我来说没有意义.. -
我打算注入很多东西,但它不起作用。我倒退了,直到我接到一个空的注射电话,但它仍然不起作用,因此我在这里发帖。那有意义吗?对不起,如果我感到困惑!
-
好吧..对不起我不在..我告诉过你..这可能是一个愚蠢的错误..:)
标签: javascript angularjs jasmine testem