Thanks so much for the answer. $httpBackend will get me the actual json 
file, right? I think I need fake data objects to create different tests, 
would i be able to do that with $httpBackend?

On Friday, March 28, 2014 8:12:36 PM UTC-4, Luis De Avila wrote:
>
> You'll want to inject $httpBackend
>
> var $httpBackend;
> beforeEach(inject(function ( _$httpBackend_) {
>             $httpBackend = _$httpBackend_
>
> Then inside your test invoke $httpBackend.when() to mock the getting of 
> the data.
>
> $httpBackend.when('GET',
>                         '/some-url')
>                     .respond(200, someData);
>                 Foo.then(function (data) {
>                     expect(data.length).toBeGreaterThan(0);
>
>
> On Friday, March 28, 2014 4:25:59 PM UTC-7, Daniel Suarez wrote:
>>
>> Hey All, 
>>
>> I'm trying to get some tests but it is not working. I have a controller 
>> that calls a service 
>>
>> var myCtrl = function($scope, someData) {
>>
>>         $scope.someData = someData;
>>         someData.getCurrentQuestion();
>>         
>>     };
>>     return [ "$scope", 'someData',  myCtrl ];
>>
>> I have a service that gets data from an $http 
>>
>> var someData = function($http) {
>>         var Data = {
>>             getCurrentQuestion: getCurrentQuestion,
>>             
>>         };
>>         function getCurrentQuestion() {
>>             $http.get('PATH').success(function(data) {
>>                 Data.questionId = data.questionId;
>>                 Data.text = data.text;
>>                 Data.kind = data.kind;
>>             })
>>
>>         }
>>         return Survey
>>     };
>>     return ['$http', someData]
>>
>> Now from the following test that is not working, how would i fake data 
>> for the $http request. This is my non-working code. I would really 
>> appreciate your help.  
>>
>> describe('myCtrl', function() {
>>         var $scope,
>>             mockService,
>>             firstQuestion = {
>>                 "questionId": "gender",
>>                 "text": "blah",
>>                 "kind": true,
>>             };
>>
>>         beforeEach(module('myModule'));
>>         beforeEach(inject(function($rootScope, $controller,_someData_, 
>> $q) {
>>             $scope = $rootScope.$new();
>>             mockService = _someData_;
>>             spyOn(mockService, 'getCurrentQuestion')
>>                 .andCallFake(function() {
>>                     return firstQuestion
>>                 });
>>             $controller('myCtrl', {$scope: $scope, someData: mockService})
>>         }));
>>
>>         beforeEach(function(){
>>             $scope.$digest();
>>         });
>>
>>
>>
>>         describe('someService', function() {
>>             it('ensures test passes' , function() {
>>                 expect($scope.someData. questionId).toBe('gender');
>>             });
>>             
>>             it(''ensures test passes'', function() {
>>                 expect($scope.someData.kind).toBe(true);
>>             });
>>
>>         })
>>
>>     })
>>
>

-- 
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 [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/angular.
For more options, visit https://groups.google.com/d/optout.

Reply via email to