gpt4 book ai didi

javascript - Angular + Jasmine 测试

转载 作者:行者123 更新时间:2023-11-29 10:43:48 25 4
gpt4 key购买 nike

对于使用 Jasmine 进行 AngularJS 和 BDD 测试,我是一个新手(完全是新手)。我这个周末的目标是在这两方面都变得更有能力。

我目前正在学习 angularJS 网站上提供的教程,并且正在本地处理这些文件。在 Chapter 2它简要介绍了使用 Jasmine 创建 Angular 测试。

但是,我完全按照教程中的说明进行操作,但 Jasmine 失败了。测试只是为了确保在 HTML 中恰好呈现 3 个电话。 (有哪些)。

这是测试:

describe('PhoneListCtrl', function() {
it('should create "phones" model with 3 phones', function() {
var scope = {},
ctrl = new PhoneListCtrl(scope);
expect(scope.phones.length).toBe(3);
});
});

我在 tests.html 页面上遇到的错误是:

ReferenceError: PhoneListCtrl 未定义

这是 tests.html:

<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Jasmine Spec Runner v2.0.0</title>

<link rel="shortcut icon" type="image/png" href="jasmine/jasmine_favicon.png">
<link rel="stylesheet" type="text/css" href="jasmine/jasmine.css">

<script type="text/javascript" src="jasmine/jasmine.js"></script>
<script type="text/javascript" src="jasmine/jasmine-html.js"></script>
<script type="text/javascript" src="jasmine/boot.js"></script>

<!-- include source files here... -->
<script src="js/controllers.js"></script>

<!-- include spec files here... -->
<script type="text/javascript" src="spec/spec.js"></script>

</head>

<body>
</body>
</html>

我知道 js/controllers.js 没有问题,因为在我的 index.html 页面中(通过 Angular)渲染了 3 部手机,所以我在设置 Jasmine 时肯定在某个地方出了问题,但不完全确定在哪里......

更新:PhoneListCtrl定义如下:

var phonecatApp = angular.module('phonecatApp', []);
phonecatApp.controller('PhoneListCtrl', function ($scope) { .. });

我也试过以下方法:

describe('PhoneListCtrl', function(){

beforeEach(module('phonecatApp'));

it('should create "phones" model with 3 phones', inject(function($controller) {
var scope = {},
ctrl = $controller('PhoneListCtrl', {$scope:scope});

expect(scope.phones.length).toBe(3);
}));

});

但是通过上面我得到'module' is not defined...

最佳答案

教程项目Angular-phonecat基于 angular-seed它使用业力测试运行器来运行 Jasmine 测试。

所有 JS 文件都应该包含在 karma 配置文件中 test/karma.conf.js .查看example来自 angular-phonecat 来源。将包含 PhoneListCtrl 的行是:

'app/js/**/*.js'

可以使用 npm test 运行测试等于 karma start test/karma.conf.js (命令配置在package.json文件上)

如果您按照 tutorial main page 上的说明克隆了 angular-phonecat 项目,您应该已经有了工作的业力配置文件。

关于javascript - Angular + Jasmine 测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23710040/

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