title: Usage of spec.js file in AngularJS
body: <p>This might sound a stupid question, but I want to know its answer. What is the <strong>spec.js</strong> file in <strong>AngularJS</strong> and what is its use? Is it used for <em>testing</em> purpose?</p>
  
  <p>EDIT- Below is the code of file <strong>phone-detail.component.spec.js</strong></p>
  
  <pre><code>'use strict';
  
  describe('phoneDetail', function() {
  
    // Load the module that contains the `phoneDetail` component before each test
    beforeEach(module('phoneDetail'));
  
    // Test the controller
    describe('PhoneDetailController', function() {
      var $httpBackend, ctrl;
      var xyzPhoneData = {
        name: 'phone xyz',
        images: ['image/url1.png', 'image/url2.png']
      };
  
      beforeEach(inject(function($componentController, _$httpBackend_, $routeParams) {
        $httpBackend = _$httpBackend_;
        $httpBackend.expectGET('phones/xyz.json').respond(xyzPhoneData);
  
        $routeParams.phoneId = 'xyz';
  
        ctrl = $componentController('phoneDetail');
      }));
  
      it('should fetch the phone details', function() {
        jasmine.addCustomEqualityTester(angular.equals);
  
        expect(ctrl.phone).toEqual({});
  
        $httpBackend.flush();
        expect(ctrl.phone).toEqual(xyzPhoneData);
      });
  
    });
  
  });
  </code></pre>