2017-06-15 101 views
2

我想使用Jest快照测试我的angular 1.x指令。 我已经有了一个有效的测试环境,但我不确定如何(以及如果可以)快照测试我的指令/组件。Angular 1.x与Jest的快照测试

我不认为我可以使用在这个例子中使用的渲染器对象(看起来像一个反应特定的对象)http://facebook.github.io/jest/docs/en/snapshot-testing.html#content,我不知道如何使用.toJSON()函数来序列化我的指令/组件。

这是我在Jest + Angular 1.x上找到的唯一链接: https://medium.com/aya-experience/testing-an-angularjs-app-with-jest-3029a613251我找不到任何有关快照测试的答案。

由于提前,

费德里科

+0

你发现了这事?我也会感兴趣 –

+0

托比亚斯,可悲的是没有答案,没有时间自己找出任何新的答案 –

回答

0

它的工作原理。

test.js

const angular = require('angular'); 
require('angular-mocks'); 

describe('Renderer',() => { 
    let element; 
    let scope; 

    beforeEach(
    angular.mock.inject(($rootScope, $compile) => { 
     scope = $rootScope.$new(); 
     element = $compile(
     '<div><label ng-show="label.show">1</label><label ng-hide="label.show">2</label></div>' 
    )(scope); 
     scope.$digest(); 
    }) 
); 

    it('should render the element',() => { 
    expect(element).toBeDefined(); 
    expect(element[0]).toMatchSnapshot(); 
    }); 
}); 

快照

exports[`Renderer should render the element 1`] = ` 
<div 
    class="ng-scope" 
> 
    <label 
    class="ng-hide" 
    ng-show="label.show" 
    > 
    1 
    </label> 
    <label 
    ng-hide="label.show" 
    > 
    2 
    </label> 
</div> 
`;