You're not dense but I was being dense! I just randomly for no good reason 
assumed a mocha-like setup which is obviously not what's going on here. 
 Ignore my comment about a test runner file (and undo the changes you made 
trying to interpret my silliness).

This line in the karma configuration should be ensuring that your 
controller is loaded before the tests: 
https://github.com/angular/angular-phonecat/blob/step-2/test/karma.conf.js#L10

So I don't know what might be going wrong.  Maybe someone can show how you 
get into debug mode in karma or knows a typical reason that this would 
happen in the tutorial.  One way or the other signs are pointing to a 
situation where your controller may not be (properly) registered prior to 
the test executing.  Sorry I can't be of more help, I'm a mocha chick. :(


On Wednesday, May 28, 2014 9:30:21 PM UTC-7, dorono wrote:
>
> Thanks, Daphne! 
>
> Excuse me if I sound dense, but by test runner html file, do you mean the 
> html file with the markup for the page I'm testing? If so, I'm not sure 
> where the test is included, since I don't believe that it's to be included 
> in the head of the html file, but of course, it is running on my local npm 
> server. I did try taking the controller code out of the separate js file it 
> was living in, and move it to the <head> tag, but that didn't fix it. 
>
> Whaddyafink?
>
> Thanks again!
>
> D
>
>
> On Tuesday, May 27, 2014 10:41:11 PM UTC-7, Daphne Maddox wrote:
>>
>> I haven't gone through the tutorial but that error message can be 
>> misleading.  It's the same one you get if the controller has *never* been 
>> defined, so you might want to verify that the file that contains the 
>> controller is included in your test runner html file *before* the test that 
>> tries to run it is included.
>>
>> On Tuesday, May 27, 2014 9:26:45 PM UTC-7, dorono wrote:
>>>
>>> Hello there,
>>>
>>> I am an Angular newbie, and was going through the tutorial on the 
>>> Angular site (https://docs.angularjs.org/tutorial/), and noticed that 
>>> although the app seemed to be functioning properly, the code was failing 
>>> the jasmine unit test. 
>>>
>>> Here's what I'm getting in the log:
>>>
>>> Chrome 35.0.1916 (Mac OS X 10.9.3): Executed 1 of 2 (1 FAILED) (0 secs 
>>> / 0.02 seChrome 35.0.1916 (Mac OS X 10.9.3) PhoneCat controllers 
>>> PhoneListCtrl should set the default value of orderProp model FAILED
>>>
>>> Error: [ng:areq] Argument 'PhoneListCtrl' is not a function, got 
>>> undefined
>>>
>>> Here's what's in my jasmine test file:
>>>
>>> 'use strict';
>>>
>>> /* jasmine specs for controllers go here */
>>>
>>> describe('PhoneCat controllers', function() {
>>>
>>>  describe('PhoneListCtrl', function(){
>>>
>>>     var scope, ctrl;
>>>
>>>    beforeEach(module('phonecatApp'));
>>>
>>>    beforeEach(inject(function($controller) {
>>>
>>>       scope = {};
>>>
>>>       ctrl = $controller('PhoneListCtrl', {$scope:scope});
>>>
>>>     }));
>>>
>>>    it('should create "phones" model with 3 phones', 
>>> inject(function($controller) {
>>>
>>>       expect(scope.phones.length).toBe(3);
>>>
>>>     }));
>>>
>>>   it('should set the default value of orderProp model', function() {
>>>
>>>       expect(scope.orderProp).toBe('age');
>>>
>>>     });
>>>
>>>   });
>>>
>>> });
>>> And here's what's in my controller:
>>> 'use strict';
>>>
>>> /* Controllers */
>>>
>>> var phonecatApp = angular.module('phonecatApp', []);
>>>
>>> phonecatApp.controller('PhoneListCtrl', function($scope) {
>>>   $scope.phones = [
>>>     {'name': 'Nexus S',
>>>      'snippet': 'Fast just got faster with Nexus S.',
>>>      'age': 1},
>>>     {'name': 'Motorola XOOMâ„¢ with Wi-Fi',
>>>      'snippet': 'The Next, Next Generation tablet.',
>>>      'age': 2},
>>>     {'name': 'MOTOROLA XOOMâ„¢',
>>>      'snippet': 'The Next, Next Generation tablet.',
>>>      'age': 3}
>>>   ];
>>>
>>>   $scope.orderProp = 'age';
>>> });
>>>
>>> Has anyone gone through the tutorial and had this same issue? 
>>>
>>> Thanks!
>>>
>>> Doron
>>>
>>

-- 
You received this message because you are subscribed to the Google Groups 
"AngularJS" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to angular+unsubscr...@googlegroups.com.
To post to this group, send email to angular@googlegroups.com.
Visit this group at http://groups.google.com/group/angular.
For more options, visit https://groups.google.com/d/optout.

Reply via email to