Javascript AngularJS-在根元素上使用ng if对视图模板进行单元测试

Javascript AngularJS-在根元素上使用ng if对视图模板进行单元测试,javascript,angularjs,karma-jasmine,Javascript,Angularjs,Karma Jasmine,我使用的是requirejs、karma、jasmine、ng-html2js和ngMock 在对我的视图进行单元测试时,我执行以下操作: view = compile(angular.element(html))(scope); scope.$digest(); 该视图包含如下内容: <div ng-if="expression()">More stuff</div> console.log(视图)显示: Object{0: <div class="ng-s

我使用的是requirejs、karma、jasmine、ng-html2js和ngMock

在对我的视图进行单元测试时,我执行以下操作:

view = compile(angular.element(html))(scope);
scope.$digest();
该视图包含如下内容:

<div ng-if="expression()">More stuff</div>
console.log(视图)
显示:

 Object{0: <div class="ng-scope" ng-show="expression()">More stuff</div>, length: 1}
将ng if更改为ng show并查看差异


如果我将一个
包裹在ng if元素周围,无论您的视图中有什么内容,这都是可行的。您需要的是按id命名您的div并获得它。当你说表达式返回true时,我们可以看看你是如何测试它的吗?表达式()能够通过ng-show驱动行为。无论哪种方式,你的视图中都有东西。您需要的是按id命名您的div并获得它。当你说表达式返回true时,我们可以看看你是如何测试它的吗?表达式()能够通过ng show驱动行为。
 Object{0: <div class="ng-scope" ng-show="expression()">More stuff</div>, length: 1}
Object{0: <div class="ng-scope ng-hide" ng-hide="expression()">More stuff</div>, length: 1}
var ascope = scope.$new(true);
ascope.name = "Test";
var view = compile("<p ng-if='true'>{{ name }}</p>")(ascope);
ascope.$digest();
console.log(view);