Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
angularjs单元测试元素$onInit绑定未定义 成分 测试 从“/index”导入accountModule; 描述('账户',()=>{ beforeach(angular.mock.module(accountModule)); 让onLogoutSpy=jasmine.createSpy('onLogout'); 常量绑定={ 用户:{ “名字”:“我”, “姓氏”:“你” }, onLogout:onLogoutSpy }; 让控制器, 根镜, 范围 描述('Controller',()=>{ 每次之前(注入($injector)=>{ rootScope=$injector.get(“$rootScope”); scope=rootScope.$new(); 常量$componentController=$injector.get(“$componentController”); 控制器=$componentController('appAccount',{$scope:scope},绑定); 控制器。$onInit(); })); 它('应该附加到范围',()=>{ expect(scope.$ctrl).toBe(controller); }); 它('isVisibled应该为false',()=>{ expect(controller.isVisibled).toBe(false); }); 它('全名应该是我你',()=>{ expect(controller.fullname).toEqual('me-you'); }); 它('isVisibled应该为true',()=>{ controller.show(); expect(controller.isVisibled).toBe(true); }); 它('应该只调用了onLogout',()=>{ controller.logout(); expect(onLogoutSpy).tohavebeincall(); }); }); 描述('组件',()=>{ 让元素、范围; beforeach(注入($rootScope,$compile)=>{ 转储(bindings.user); scope=$rootScope.$new(); 常量标记=` `; 元素=角度。元素(标记); 元素=$compile(元素)(范围); 让elementController=element.controller('app-account'); 范围。$digest(); elementController.$onInit(); })); 它('xxx',()=>{ //转储(元素); //const backendHeader=element.find('backend-header').eq(0); //expect(backendHeader.toBeDefined(); }); }); });_Angularjs_Unit Testing - Fatal编程技术网

angularjs单元测试元素$onInit绑定未定义 成分 测试 从“/index”导入accountModule; 描述('账户',()=>{ beforeach(angular.mock.module(accountModule)); 让onLogoutSpy=jasmine.createSpy('onLogout'); 常量绑定={ 用户:{ “名字”:“我”, “姓氏”:“你” }, onLogout:onLogoutSpy }; 让控制器, 根镜, 范围 描述('Controller',()=>{ 每次之前(注入($injector)=>{ rootScope=$injector.get(“$rootScope”); scope=rootScope.$new(); 常量$componentController=$injector.get(“$componentController”); 控制器=$componentController('appAccount',{$scope:scope},绑定); 控制器。$onInit(); })); 它('应该附加到范围',()=>{ expect(scope.$ctrl).toBe(controller); }); 它('isVisibled应该为false',()=>{ expect(controller.isVisibled).toBe(false); }); 它('全名应该是我你',()=>{ expect(controller.fullname).toEqual('me-you'); }); 它('isVisibled应该为true',()=>{ controller.show(); expect(controller.isVisibled).toBe(true); }); 它('应该只调用了onLogout',()=>{ controller.logout(); expect(onLogoutSpy).tohavebeincall(); }); }); 描述('组件',()=>{ 让元素、范围; beforeach(注入($rootScope,$compile)=>{ 转储(bindings.user); scope=$rootScope.$new(); 常量标记=` `; 元素=角度。元素(标记); 元素=$compile(元素)(范围); 让elementController=element.controller('app-account'); 范围。$digest(); elementController.$onInit(); })); 它('xxx',()=>{ //转储(元素); //const backendHeader=element.find('backend-header').eq(0); //expect(backendHeader.toBeDefined(); }); }); });

angularjs单元测试元素$onInit绑定未定义 成分 测试 从“/index”导入accountModule; 描述('账户',()=>{ beforeach(angular.mock.module(accountModule)); 让onLogoutSpy=jasmine.createSpy('onLogout'); 常量绑定={ 用户:{ “名字”:“我”, “姓氏”:“你” }, onLogout:onLogoutSpy }; 让控制器, 根镜, 范围 描述('Controller',()=>{ 每次之前(注入($injector)=>{ rootScope=$injector.get(“$rootScope”); scope=rootScope.$new(); 常量$componentController=$injector.get(“$componentController”); 控制器=$componentController('appAccount',{$scope:scope},绑定); 控制器。$onInit(); })); 它('应该附加到范围',()=>{ expect(scope.$ctrl).toBe(controller); }); 它('isVisibled应该为false',()=>{ expect(controller.isVisibled).toBe(false); }); 它('全名应该是我你',()=>{ expect(controller.fullname).toEqual('me-you'); }); 它('isVisibled应该为true',()=>{ controller.show(); expect(controller.isVisibled).toBe(true); }); 它('应该只调用了onLogout',()=>{ controller.logout(); expect(onLogoutSpy).tohavebeincall(); }); }); 描述('组件',()=>{ 让元素、范围; beforeach(注入($rootScope,$compile)=>{ 转储(bindings.user); scope=$rootScope.$new(); 常量标记=` `; 元素=角度。元素(标记); 元素=$compile(元素)(范围); 让elementController=element.controller('app-account'); 范围。$digest(); elementController.$onInit(); })); 它('xxx',()=>{ //转储(元素); //const backendHeader=element.find('backend-header').eq(0); //expect(backendHeader.toBeDefined(); }); }); });,angularjs,unit-testing,Angularjs,Unit Testing,给我 1)xxx 帐户组件 TypeError:无法读取未定义的属性“firstName” 你能帮我解决一下吗?我想你应该写: beforeEach(inject(($rootScope, $compile) => { scope = $rootScope.$new(); scope.user = { firstName "me", lastName : "you" } element = $compile(`<app-account user="use

给我

1)xxx 帐户组件 TypeError:无法读取未定义的属性“firstName”


你能帮我解决一下吗?

我想你应该写:

beforeEach(inject(($rootScope, $compile) => {
  scope = $rootScope.$new();
  scope.user = {
    firstName "me",
    lastName : "you"
 } 
 element = $compile(`<app-account user="user"></app-account>`)(scope);
 let elementController = element.controller('app-account');
 scope.$digest();
}));
beforeach(注入($rootScope,$compile)=>{
scope=$rootScope.$new();
scope.user={
名字“我”,
姓:“你”
} 
元素=$compile(``)(范围);
让elementController=element.controller('app-account');
范围。$digest();
}));

您正在传递绑定对象的用户obj,它必须是作用域的用户obj。

在第二次测试中,您没有将
绑定分配给作用域

scope = $rootScope.$new();
scope.bindings = bindings;  // -------v
const markup = '<app-account user="bindings.user"></app-account>';
scope=$rootScope.$new();
scope.bindings=绑定;//-------v
常量标记=“”;
import accountModule from './index';


describe('Account', () => {

  beforeEach(angular.mock.module(accountModule));

  let onLogoutSpy = jasmine.createSpy('onLogout');

  const bindings = {
    user: {
      "firstName" : "me",
      "lastName" : "you"
    },
    onLogout: onLogoutSpy
  };

  let controller,
    rootScope,
    scope;

  describe('Controller', () => {

      beforeEach(inject( ($injector) => {
        rootScope = $injector.get('$rootScope');
        scope = rootScope.$new();
        const $componentController = $injector.get('$componentController');
        controller = $componentController('appAccount',{$scope:scope},bindings);
        controller.$onInit();
      }));

      it('should be attached to the scope', () => {
        expect(scope.$ctrl).toBe(controller);
      });

      it('isVisibled should be false', () => {
        expect(controller.isVisibled).toBe(false);
      });

      it('fullname should be me you', () => {
        expect(controller.fullname).toEqual('me you');
      });

      it('isVisibled should be true', () => {
        controller.show();
        expect(controller.isVisibled).toBe(true);
      });

      it('should onLogout have been called', () => {
        controller.logout();
        expect(onLogoutSpy).toHaveBeenCalled();
      });

    });

  describe('Component', () => {

    let element,scope;

    beforeEach(inject(($rootScope, $compile) => {
      dump(bindings.user);
       scope = $rootScope.$new();
        const markup = `
          <app-account user="bindings.user"></app-account>
        `;
        element = angular.element(markup);
        element = $compile(element)(scope);
        let elementController = element.controller('app-account');
        scope.$digest();
        elementController.$onInit(); 

    }));

    it('xxx', () => {
      //dump(element);
      //const backendHeader = element.find('backend-header').eq(0);
      //expect(backendHeader).toBeDefined();
    });


  });
});
beforeEach(inject(($rootScope, $compile) => {
  scope = $rootScope.$new();
  scope.user = {
    firstName "me",
    lastName : "you"
 } 
 element = $compile(`<app-account user="user"></app-account>`)(scope);
 let elementController = element.controller('app-account');
 scope.$digest();
}));
scope = $rootScope.$new();
scope.bindings = bindings;  // -------v
const markup = '<app-account user="bindings.user"></app-account>';