微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

已弃用:DI 正在实例化一个令牌“MockLocationStrategy”,该令牌继承了它的 @Injectable 装饰器但不提供它本身

如何解决已弃用:DI 正在实例化一个令牌“MockLocationStrategy”,该令牌继承了它的 @Injectable 装饰器但不提供它本身

在测试我的 Angular 应用程序时,我收到了弃用警告

'DEPRECATED:DI 正在实例化一个令牌“MocklocationStrategy”,该令牌继承了它的 @Injectable 装饰器,但本身不提供。 这将在 Angular 的未来版本中成为一个错误。请将@Injectable() 添加到“MocklocationStrategy”类中。'

下面是一个抛出警告的示例测试


describe('BookComponent',() => {
  let component: BookComponent;
  let fixture: ComponentFixture<BookIssueComponent>;

  beforeEach(waitForAsync(() => {
    Testbed.configureTestingModule({
      imports: [
        RouterTestingModule,],declarations: [BookComponent]
    })
      .compileComponents();
  }));

  beforeEach(() => {
    fixture = Testbed.createComponent(BookComponent);
    component = fixture.componentInstance;
    fixture.detectChanges();
  });

  it('should create',() => {
    expect(component).toBeTruthy();
  });
});

我相信警告是因为我更新了我的软件包

Package                                   Current     Wanted    Latest  Location                                          
@angular-devkit/architect               0.1102.11  0.1102.13  0.1200.1  node_modules/@angular-devkit/architect               
@angular-devkit/build-angular           0.1102.11  0.1102.13    12.0.1  node_modules/@angular-devkit/build-angular           
@angular-eslint/builder                     4.2.0      4.3.0    12.0.0  node_modules/@angular-eslint/builder                 
@angular-eslint/eslint-plugin               4.2.0      4.3.0    12.0.0  node_modules/@angular-eslint/eslint-plugin           
@angular-eslint/eslint-plugin-template      4.2.0      4.3.0    12.0.0  node_modules/@angular-eslint/eslint-plugin-template  
@angular-eslint/schematics                  4.2.0      4.3.0    12.0.0  node_modules/@angular-eslint/schematics              
@angular-eslint/template-parser             4.2.0      4.3.0    12.0.0  node_modules/@angular-eslint/template-parser         
@angular/animations                       11.2.12    11.2.14    12.0.1  node_modules/@angular/animations                     
@angular/cdk                              11.2.11    11.2.13    12.0.1  node_modules/@angular/cdk                            
@angular/cli                              11.2.11    11.2.13    12.0.1  node_modules/@angular/cli                            
@angular/common                           11.2.12    11.2.14    12.0.1  node_modules/@angular/common                         
@angular/compiler                         11.2.12    11.2.14    12.0.1  node_modules/@angular/compiler                       
@angular/compiler-cli                     11.2.12    11.2.14    12.0.1  node_modules/@angular/compiler-cli                   
@angular/core                             11.2.12    11.2.14    12.0.1  node_modules/@angular/core                           
@angular/forms                            11.2.12    11.2.14    12.0.1  node_modules/@angular/forms                          
@angular/language-service                 11.2.12    11.2.14    12.0.1  node_modules/@angular/language-service               
@angular/platform-browser                 11.2.12    11.2.14    12.0.1  node_modules/@angular/platform-browser               
@angular/platform-browser-dynamic         11.2.12    11.2.14    12.0.1  node_modules/@angular/platform-browser-dynamic       
@angular/pwa                            0.1102.11  0.1102.13    12.0.1  node_modules/@angular/pwa                            
@angular/router                           11.2.12    11.2.14    12.0.1  node_modules/@angular/router                         
@angular/service-worker                   11.2.12    11.2.14    12.0.1  node_modules/@angular/service-worker                 
@ngrx/component                            11.1.1     11.1.1    12.0.0  node_modules/@ngrx/component                         
@ngrx/effects                              11.1.1     11.1.1    12.0.0  node_modules/@ngrx/effects                           
@ngrx/entity                               11.1.1     11.1.1    12.0.0  node_modules/@ngrx/entity                            
@ngrx/schematics                           11.1.1     11.1.1    12.0.0  node_modules/@ngrx/schematics                        
@ngrx/store                                11.1.1     11.1.1    12.0.0  node_modules/@ngrx/store                             
@ngrx/store-devtools                       11.1.1     11.1.1    12.0.0  node_modules/@ngrx/store-devtools                    
@tinymce/tinymce-angular                    4.2.2      4.2.3     4.2.3  node_modules/@tinymce/tinymce-angular                
@types/jasmine                             3.6.10      3.7.4     3.7.4  node_modules/@types/jasmine                          
@types/jasminewd2                           2.0.8      2.0.9     2.0.9  node_modules/@types/jasminewd2                       
@types/node                                15.0.1     15.6.0    15.6.0  node_modules/@types/node                             
@typescript-eslint/eslint-plugin           4.22.0     4.22.0    4.24.0  node_modules/@typescript-eslint/eslint-plugin        
@typescript-eslint/parser                  4.22.0     4.22.0    4.24.0  node_modules/@typescript-eslint/parser               
bootstrap                                   4.6.0      4.6.0     5.0.1  node_modules/bootstrap                               
eslint                                     7.25.0     7.26.0    7.26.0  node_modules/eslint                                  
eslint-plugin-import                       2.22.1     2.22.1    2.23.2  node_modules/eslint-plugin-import                    
eslint-plugin-jsdoc                        33.0.0     33.0.0    34.8.2  node_modules/eslint-plugin-jsdoc                     
google-libphonenumber                      3.2.19     3.2.21    3.2.21  node_modules/google-libphonenumber                   
ng2-pdf-viewer                              6.4.1      6.4.1     7.0.1  node_modules/ng2-pdf-viewer                          
rxjs                                        6.6.7      6.6.7     7.1.0  node_modules/rxjs                                    
snyk                                      1.580.0    1.605.0   1.605.0  node_modules/snyk                                    
tinymce                                     5.7.1      5.8.1     5.8.1  node_modules/tinymce                                 
typescript                                  4.1.5      4.1.5     4.2.4  node_modules/typescript  

我已尝试关注讨论 docs: RouterTestingModule should be added to Testing guide #34341,但我不知道如何解决此问题

但是我如何提供我的 RouterTesting 模块来解决这个问题?

解决方法

使用 withRoutes 提供路线并没有消除我的警告。而是为每个测试导入 MockLocationStrategyLocationStrategy 提供 RouterTestingModule 对我有用。

import { MockLocationStrategy } from '@angular/common/testing';
import { RouterTestingModule } from '@angular/router/testing';

然后在TestBed.configureTestingModule

{ provide: LocationStrategy,useClass: MockLocationStrategy },

我在这里找到了答案:https://github.com/angular/angular/issues/34341#issuecomment-864281500

,

我是在@angular/cli 12.0.3 上得到的。将@angular/cli 更新到 12.1.0 为我解决了这个问题。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。