gpt4 book ai didi

javascript - 尝试使用 Karma/Jasmine 测试 Angular,但无法让 Jasmine 测试正确设置 $scope

转载 作者:行者123 更新时间:2023-12-03 11:48:09 24 4
gpt4 key购买 nike

我的 Angular 脚本如下所示:

var app = angular.module("myApp", []);



app.controller('TestController', function ($scope) {
$scope.test= "TEST";
});

我的测试文件如下所示:

describe('first test', function() {
var $scope;

beforeEach(function (){
module('myApp');

inject(function($rootScope, $controller) {
$scope = $rootScope.$new();
ctrl = $controller('TestController', {
$scope: $scope
});
});
it('scope should have test', function() {
expect($scope.test).toEqual("TEST");
});
});

此测试失败,表示 $scope.test 未定义。我在 Chrome 中调试,看到 $scope 有一堆属性,但没有一个是测试的。我在网上浏览了几个示例,它们看起来都与此非常相似。我不太确定我在这里做错了什么,我被困住了......

编辑我尝试添加 $controller 进行注入(inject),但仍然遇到同样的问题。

最佳答案

您需要通过$controller service$rootScope 一起:

inject(function($rootScope, $controller) {
$scope = $rootScope.$new();
ctrl = $controller('TestController', {
$scope: $scope
});
});

关于javascript - 尝试使用 Karma/Jasmine 测试 Angular,但无法让 Jasmine 测试正确设置 $scope,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25955320/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com