Angularjs   发布时间:2022-04-20  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了beforeEach在angularjs / requirejs场景中没有通过Karma / Jasmine调用大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
在本地运行我的单元测试工作正常,但在构建服务器上发生了最愚蠢的事情:有时他们通过,有时他们没有.主要代码: @H_301_7@

@H_301_7@

define(['angmock','someMore'],function () {
    describe('myController',function () {
        beforeEach(function () {
        console.log("Entry - Initializing modules...");
        module('module1');
        module('module2');
        console.log("Exit - Initializing modules...");
    });

    var scope,controller;
    beforeEach(inject(function ($rootScope,$controller) {
        console.log("Entry - CreaTing scope...");

        scope = $rootScope.$new();
        controller = $controller('myController',{
            $scope: scope
        });

        console.log("Exit - CreaTing scope...");
    }));

    it('should test something',function () {
        console.log("Entry - Test A");
        scope.myImportantAssignment = variablename;
        ...
        console.log("Exit - Test A");
    });
...
@H_301_7@在构建服务器日志中,我有时可以阅读:

@H_301_7@

@H_301_7@在控制台上我可以读到:

@H_301_7@>日志:’进入 – 初始化模块……’
>日志:’退出 – 初始化模块……’
>日志:’进入 – 测试A’

@H_301_7@这可能表明第二个beforeEach根本没有被调用,因此范围没有被初始化.但为什么?在我看来,处理应该像:

@H_301_7@>在每个1之前
>在每个2之前
>它

@H_301_7@但事实似乎并非如此.是不是有异步问题?非常感谢任何一点提示,因为如果它们有时会失败,我根本无法使用这些测试……

解决方法

没有可以解释问题的竞争条件,块是同步的并且总是按顺序运行.如果应用程序地无法自举并注入注入,则可能会发生这种情况. @H_301_7@

@H_301_7@控制台中应该有错误,但PhantomJS以吞咽错误而闻名,将Karma启动器更改为Chrome可能会改善错误输出.

@H_301_7@从beforeEach移动注入到它也可以帮助找到问题,它使规范失败而不是失败的期望,但是使错误导致此期望失败.

@H_301_7@在单元测试中,应用程序单元进行测试,其他所有内容都应该被模拟,具有额外的依赖关系(用于Kendo UI的Angular包装器)为规范添加了更多移动部件.

大佬总结

以上是大佬教程为你收集整理的beforeEach在angularjs / requirejs场景中没有通过Karma / Jasmine调用全部内容,希望文章能够帮你解决beforeEach在angularjs / requirejs场景中没有通过Karma / Jasmine调用所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。