- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
刚开始学习 Angularjs 和 jasmine 单元测试...
跟随教程 http://docs.angularjs.org/tutorial/step_02发现第一个单元测试(应该通过,因为 scope.phones.length
是 3)失败。
INFO [karma]: Karma v0.10.2 server started at http://localhost:9876/
INFO [launcher]: Starting browser Chrome
INFO [Chrome 30.0.1599 (Mac OS X 10.8.5)]: Connected on socket BdjA1lVT9OOo8kgQKLYs
Chrome 30.0.1599 (Mac OS X 10.8.5) PhoneCat controllers PhoneListCtrl should create "phones" model with 3 phones FAILED
ReferenceError: PhoneListCtrl is not defined
at null.<anonymous> (/Applications/MAMP/htdocs/angular-phonecat/test/unit/controllersSpec.js:12:22)
Chrome 30.0.1599 (Mac OS X 10.8.5): Executed 2 of 2 (1 FAILED) (0.37 secs / 0.033 secs)
'use strict';
/* jasmine specs for controllers go here */
describe('PhoneCat controllers', function() {
describe('PhoneListCtrl', function(){
beforeEach(module('phonecatApp'));
it('should create "phones" model with 3 phones', function() {
var scope = {},
ctrl = new PhoneListCtrl(scope);
expect(scope.phones.length).toBe(3);
});
it('should create "phones" model with 3 phones', inject(function($controller) {
var scope = {},
ctrl = $controller('PhoneListCtrl', {$scope:scope});
expect(scope.phones.length).toBe(3);
}));
});
});
'use strict';
/* Controllers */
var phonecatApp = angular.module('phonecatApp', []);
phonecatApp.controller('PhoneListCtrl', function PhoneListCtrl($scope) {
$scope.phones = [
{'name': 'Nexus S',
'snippet': 'Fast just got faster with Nexus S.'},
{'name': 'Motorola XOOM™ with Wi-Fi',
'snippet': 'The Next, Next Generation tablet.'},
{'name': 'MOTOROLA XOOM™',
'snippet': 'The Next, Next Generation tablet.'}
];
$scope.hello = "Hello World";
});
最佳答案
示例中有 2 个单元测试(2 个 it
block )。他们看起来应该做同样的事情,但只有第二个实际创建了您的 Controller 。
当您以 Angular 定义 Controller 时,它不是一个全局可用的对象,您可以使用 new Controller(...)
进行初始化.您必须从 Angular 请求它。
您的第二个测试(似乎通过了)通过注入(inject) $controller
来做到这一点。服务将执行设置和请求 Controller 所需的任何操作。
inject(function($controller) { ... });
var scope = {},
ctrl = $controller('PhoneListCtrl', {$scope:scope});
PhoneListCtrl
直接变量。正如错误所说,除非您在函数中定义具有该名称的变量,否则这不存在。
function PhoneListCtrl($scope) {
$scope.phones = [
{'name': 'Nexus S',
'snippet': 'Fast just got faster with Nexus S.'},
{'name': 'Motorola XOOM™ with Wi-Fi',
'snippet': 'The Next, Next Generation tablet.'},
{'name': 'MOTOROLA XOOM™',
'snippet': 'The Next, Next Generation tablet.'}
];
$scope.hello = "Hello World";
};
phonecatApp.controller('PhoneListCtrl', PhoneListCtrl);
$controller
的任何操作。会为你做的。
关于unit-testing - Angularjs:angular-phonecat 教程应用程序第一次单元测试失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19403472/
我正在处理this tutorial在 Angular-JS 中。当我运行服务器时,似乎没有发生任何事情,我的控制台如下所示: 这是在 git bash 中,但我在 Windows 控制台中得到了同样
我下载了 AngularJS phonecat 应用程序,并在全局范围内安装了 bower、http-server、karma、protractor。但是当我移动到带有代码的目录并尝试 'npm st
刚开始学习 Angularjs 和 jasmine 单元测试... 跟随教程 http://docs.angularjs.org/tutorial/step_02发现第一个单元测试(应该通过,因为 s
我下载了 AngularJS phonecat 标准应用程序,并安装了 Node。但是当我移动到带有代码的目录并尝试“npm start”时,我收到以下错误: > angular-phonecat@0
我的问题如下图所示: 主要问题是我收到一个:Bower ENOENT no Bower.json present 错误,正如您在图像(第二个命令)中看到的那样,该文件实际上存在。因此,我一直在尝试查找
angular-phonecat 教程假定您在安装了 chrome 的服务器上运行 angular-phonecat。 进入 npm test 后,本地 chrome-browser 应该打开并连续运
我可以知道这里有什么问题吗?我一无所知……谢谢。 npm ERR! angular-phonecat@0.0.0 prestart: `npm install` npm ERR! spawn ENOE
我在 angular-phonecat 目录中运行 npm install 时遇到问题。我假设这可能是我的路径问题,但不确定。任何见解将不胜感激。我不断收到错误:找不到模块“更新通知程序”。如果我单独
您好,我正在运行 Angular Phonecat 教程,但我已经陷入了第 0 步,node.js http 服务器为/app/index.html 返回 404 我确实在这个盒子(Win7 Pro)
我是一名优秀的程序员,十分优秀!