Angular支持这一点已有一段时间了.
您可以使用@angular/common
软件包提供的DOCUMENT
常量.
DOCUMENT
常数的说明(取自API documentation):
表示主呈现上下文的DI标记.在浏览器中,这是DOM文档.
示例如下所示:
我的服务.服务ts:
import { Inject, Injectable } from '@angular/core';
import { DOCUMENT } from '@angular/common';
@Injectable()
export class MyService {
constructor(@Inject(DOCUMENT) private document: Document) {}
}
我的服务.服务规格
import { provide } from '@angular/core';
import { DOCUMENT } from '@angular/common';
import { MyService } from './my-service';
class MockDocument {}
describe('MyService', () => {
beforeEachProviders(() => ([
provide(DOCUMENT, { useClass: MockDocument }),
MyService
]));
...
});