在Angular 9中,升级到新的单元测试框架@angular/platform-browser-dynamic/testing
可能会导致以下错误:“在资源URL上下文中使用了不安全的值”。这是因为新的测试框架对资源URL进行了严格的检查,确保它们是安全的。
要解决这个问题,你可以按照以下步骤进行操作:
确保你的应用程序和测试代码都使用了@angular/platform-browser-dynamic/testing
这个新的测试框架。你可以在src/test.ts
文件中检查测试代码是否有以下导入语句:
import { TestBed } from '@angular/core/testing';
import { BrowserDynamicTestingModule, platformBrowserDynamicTesting } from '@angular/platform-browser-dynamic/testing';
在src/test.ts
文件的顶部,添加以下代码来初始化测试框架:
TestBed.initTestEnvironment(
BrowserDynamicTestingModule,
platformBrowserDynamicTesting()
);
在你的测试代码中,如果你使用了TestBed.configureTestingModule
来配置测试环境,请检查你是否将schemas
属性设置为[CUSTOM_ELEMENTS_SCHEMA]
,如下所示:
TestBed.configureTestingModule({
schemas: [CUSTOM_ELEMENTS_SCHEMA]
});
如果是这样,请将schemas
属性更改为[NO_ERRORS_SCHEMA]
,如下所示:
TestBed.configureTestingModule({
schemas: [NO_ERRORS_SCHEMA]
});
这将禁用对资源URL的严格检查。
通过执行以上步骤,你应该能够解决“在资源URL上下文中使用了不安全的值”的错误,并正常运行你的Angular 9单元测试。