angularjs - 通过 Karma 使用 Jasmine 测试 AngularJS

标签 angularjs jasmine karma-runner

我目前正在使用 Jasmine 测试我的 AngularJS 应用程序,它正在通过规范。我尝试使用 Karma 运行测试,但失败了。看来 Karma 无法看到 Jasmine 规范中定义的 $scope,但 Jasmine 运行程序可以看到它。

我的 karma.conf.js:

frameworks = ['jasmine'];
colors = true;
singleRun = true;
files = [
    JASMINE,
    JASMINE_ADAPTER,
    ANGULAR_SCENARIO,
    ANGULAR_SCENARIO_ADAPTER,
    'lib/jquery-1.9.1.min.js',
    'lib/angular.min.js',
    'lib/angular-mocks.js',
    'lib/jquery.scrollTo.js',
    'lib/jquery-ui.min.js',
    'lib/calendar.js',
    'lib/date.js',
    'src/app.js',
    'spec/*.spec.js'
];
browsers = [
    'PhantomJS',
    'Firefox'
];

我的 test.spec.js:

describe('Application startup', function(){
    beforeEach(module('app'));
    describe('MainCtrl', function(){
        var scope, ctrl;
        beforeEach(inject(function($rootScope, $controller){
            scope = $rootScope.$new();
            ctrl = $controller('MainCtrl', {
                $scope: scope
            });
        }));
        it("should initialize $scope.testLoad to 42", function(){
            expect(scope.testLoad).toBe(42);
        });
});
});

我得到的输出:

expect undefined toBe 42

由于 Jasmine 没有任何问题地传递了这个信息,这显然是 Karma 或我的配置文件。这是怎么回事?

最佳答案

我删除了 ANGULAR_SCENARIO 和 ANGULAR_SCENARIO_ADAPTER,现在运行良好。找到合适的文档。做了一个错误的假设。

感谢@canotto90 和@Tyler Eich 的帮助和澄清。

关于angularjs - 通过 Karma 使用 Jasmine 测试 AngularJS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16661082/

相关文章:

javascript - Angular UI 路线状态未显示

javascript - 使用 Jasmine 测试 ajax 请求内的 Angular 范围变量

angularjs - 如何测试必须用 testacular 和 jasmine 呈现的 HTML

webpack - 使用 karma 和 webpack 为应用程序代码生成源映射

javascript - Protractor 可重复使用的值

javascript - AngularJS - 形成良好的实践

AngularJS,对使用依赖于某些资源的服务的指令进行单元测试

javascript - Karma/Jasmine 测试未通过 Angular Material 工具提示

javascript - Phonegap/AngularJS : can't get $apply() working

javascript - 如何使用 Jasmine 为 Angular.js 的服务和 Controller 创建测试?