【发布时间】:2016-07-09 14:11:34
【问题描述】:
@angular/platform-browser/src/dom/dom_adapter 中的 getDOM() 在规范中是如何实际工作的?
看起来in some specs getDOM() 指的是一些分离的根元素,类似于AngularJS $rootElement:
var el1 = el('<div>a</div>');
var el2 = el('<div>b</div>');
getDOM().appendChild(el2, getDOM().firstChild(el1));
expect(getDOM().childNodes(el2).length).toBe(2);
而在捆绑的Jasmine matchers getDOM() 神奇地指向同一个元素:
function(actual: any /** TODO #???? */, className: any /** TODO #???? */) {
return {
pass: getDOM().hasClass(actual, className) == !isNot,
get message() {
return `Expected ${actual.outerHTML} ${isNot ? 'not ' : ''}
to contain the CSS class "${className}"`;
}
};
};
为了方便起见,我正要构建一些 Chai 断言,但这让我觉得我遗漏了一些关于 Angular 2 在单元测试中的行为方式的重要内容。
那里发生了什么? getDOM() 上下文是如何设置的?这是什么背景?一次可以只有一个上下文吗? getDOM() 应该在生产代码中使用吗?
【问题讨论】:
标签: javascript unit-testing typescript angular jasmine