以下代码在AngularJS 1.4和1.5中的最近两年没有问题。但是,我们最近更改为angularjs 1.6并且测试失败。在我尝试的所有angularjs版本中,编译的元素似乎是正确的。 (<h2 class="ng-binding">Bill</h2><p class="ng-binding">Age: 29</p>
)似乎失败的是find()
的结果。在1.5中,elem.find('h2').html()
返回预期的字符串。在1.6中,elem.find('h2').html()
返回undefined。我查看了更改日志,但没有任何帮助我解决问题。我错过了什么?
describe('wppicd-child Directive', function() {
var elem, scope;
beforeEach(function() {
angular.mock.module(ngModuleName);
angular.mock.inject(function($rootScope, $compile) {
var elemT = ('<wppicd-child ' +
'child="child">' +
'</wppicd-child>');
scope = $rootScope.$new();
scope.child = {
name: 'Bill',
birthday: new Date('April 8, 1988')
};
elem = $compile(elemT)(scope);
scope.$digest();
});
});
it('should have correct title', function() {
expect(elem.find('h2').html()).toContain('Bill');
});
});
答案 0 :(得分:0)
虽然我不知道确切的问题,但解决方案是将PhantomJS从1.x升级到2.x.我们之前没有这样做过,因为CI服务器上的库冲突已经解决了。升级到2.x后,构建再次起作用。