在 Angular 2 中测试服务时,NgModule“DynamicTestModule”的提供程序无效

2024-01-06

我有以下服务:

import { Injectable } from '@angular/core';

import { MenuItem } from './../classes/menu-item';
import { ITEMS } from './../static-data/items-list';

@Injectable()
export class ItemsListService {

    getItems(): Promise<MenuItem[]> {
        return Promise.resolve(ITEMS);
    }

}

该服务的测试在这里:

import { TestBed, async, inject } from '@angular/core/testing';

import { ItemListService } from './item-list.service';
import { MenuItem } from './../classes/menu-item';
import { ITEMS } from './../static-data/items-list';

describe('ItemListService', () => {
  beforeEach(() => {
    TestBed.configureTestingModule({
        providers: [ ItemListService, MenuItem, ITEMS ]
    });
  });

  it('should ...', inject([ItemListService], (service: ItemListService) => {
    expect(service).toBeTruthy();
  }));
});

MenuItem 在这里定义:

export class MenuItem {
    name: string;
    link: string;
}

ITEMS 定义如下: 从 './../classes/menu-item' 导入 { MenuItem } ;

export var ITEMS: MenuItem[] = [
    {name: 'Vehicles', link: '/vehicles'},
    {name: 'Gateways', link: '/gateways'},
    {name: 'Statuses', link: '/statuses'},
    {name: 'Logs', link: '/logs'}
]

当我运行测试时,我在浏览器控制台中收到以下错误:

FAILED ItemListService should ...

and

那么为什么我会出现这些错误呢?测试工作的解决方案是什么?


这是一个非常烦人的错误,我想我应该在您的规范中查找另一个微妙的原因。就我而言,我指定providers 而不是正确的值provide如下

 TestBed.configureTestingModule({
      providers: [{provider: ApplicationActions, useClass: ActionMock}]

它只是报告,而不是提供诸如“未指定‘提供’密钥”之类的有用信息

失败:NgModule“DynamicTestModule”的提供程序无效 - 仅 允许 Provider 和 Type 的实例,得到:[?[object Object]?, ...]

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Angular 2 中测试服务时,NgModule“DynamicTestModule”的提供程序无效 的相关文章

随机推荐

  • Oracle:年份必须介于 -4713 和 +9999 之间,并且不能为 0

    我有一个像这样的 Oracle 表 EMPNO HIREDATE INDEX NUM 1 2012 11 13 1 2 2 1 3 2012 11 17 1 4 2012 11 21 1 5 2012 11 24 1 6 2013 11 2
  • Symfony 2.4 从控制器执行命令

    我想从我的控制器执行命令 fos elastica populate 我尝试了该代码 但它不起作用 我得到错误 1 var dump 显示 command fos elastica populate app new Application
  • 将 ASP.NET 菜单控件绑定到 XML

    我正在尝试将我自己的 xml 文件 出于某些特定目的 我不想使用站点地图 绑定到 ASP NET 控件 我有这段代码 在我找到的一些文章的帮助下 应该将 ASP NET 菜单控件绑定到 xml 文件 但事实并非如此 我错过了什么吗 XmlD
  • 调试器(或日志)中类似 NSDictionary 的漂亮打印

    这已经困扰我一段时间了 如何抵消在调试器中转储对象时发生的丑陋转义po foo 或通过NSLog 我尝试了多种方法来实施 description or debugDescription无济于事 鉴于这个简单的类 interface Foo
  • 在 Python 脚本中使用 Scrapy Spider 输出时出现问题

    我想在 python 脚本中使用蜘蛛的输出 为了实现这一点 我根据另一个代码编写了以下代码thread https stackoverflow com questions 40237952 get scrapy crawler output
  • 数据帧列中动态长度的 Pyspark 字符串数组进行 onehot 编码

    我想转换包含以下字符串的列 ABC def ghi Jkl ABC def Xyz ABC 进入这样的编码列 1 1 1 0 0 1 1 0 1 0 0 1 0 0 1 pyspark ml feature 中有一个类吗 编辑 在编码列中
  • 使用 AChartEngine 库的条形图

    我有一个条形图使用AChartEngine库如下图 public class MainActivity extends Activity private String mMonth new String Jan Feb Mar Apr Ma
  • Youtube API,gapi没有定义?

    我正在尝试做一个 Youtube API 我觉得除了这个gapi和res之外我一切都正常 它说gapi未定义 我怎样才能做到这一点 function tplawesome e t res e for var n 0 n
  • 从具有“路径中的非法字符”的位置执行 CMD.EXE 中的 Powershell 脚本

    我试图在 cmd exe 中调用 Powershell 脚本 该脚本位于如下位置 c Data foo bar location 1 ShellScript ps1 当我调用这个脚本时 我尝试在路径周围使用单引号和双引号 但没有成功 Pow
  • 从时间轴中提取 Google 位置历史记录

    请注意 由于 Google 的 时间轴 发生了变化之前的答案不再有效 https stackoverflow com questions 18290525 wget your google location history daily 谷歌
  • ROS 从 python 节点发布数组

    我是 ros python 的新手 我正在尝试从 python ros 节点发布一个一维数组 我使用 Int32MultiArray 但我无法理解多数组中布局的概念 谁能给我解释一下吗 或者还有其他方式发布数组吗 Thanks usr bi
  • 如何在 Kotlin 中使用 ViewModel 测试协程?

    我无法测试我的方法 感觉它没有到达 uiScope launch 块内部 并且我已经发布了我正在尝试测试的 viewModel 方法 并且fetchActivationCodeWithDuration是挂起功能 底部是我的测试类 我收到这条
  • Unix 系统中的文件 read() 函数

    下面的代码重新启动read 如果由于信号中断而导致功能失败 这read 从中断处继续读取 因此 如果read 在阅读之前被中断EOF字符 它会返回什么 读取了多少字节 int r read int fd void buf int size
  • 在范围内分组选择

    From Table A B 1 A 3 B 6 C 7 C 8 X 9 Y 15 Z 16 R 17 t 23 T 43 e 如何带来这个结果 Range A Count B 1 10 6 11 20 3 21 30 1 31 40 1
  • 不允许用户停止 javascriptalert()

    我正在开发 MVC 4 Web 应用程序 我使用 javascript 和 jquery 来做很多事情 但对于这样的信息 我使用alert 函数向用户显示各种消息 问题是 用户可以阻止此警报的出现 如果用户这样做 很多重要的消息和信息将不会
  • 在 WinForms 应用程序中编译 ASPX

    我正在编写一个发送电子邮件消息 如邮件合并 的 WinForms 应用程序 我想使用 ASP Net 的渲染引擎来渲染消息的 HTML 正文 在没有整个 ASP Net 运行时的情况下获取单个 ASPX 页面的渲染输出的最简单方法是什么 为
  • 加载 fxml 作为后台进程 - Javafx

    我最初的 fxml 比如说home fxml 有很多功能 因此需要很多时间才能完全加载 因此 为了避免程序启动和 fxml 加载之间的时间间隔 我又引入了一个 fxml 例如loader fxml 带有 gif 图像 该图像应在加载主 fx
  • 打印预览中不显示背景颜色

    我正在尝试打印一页 在该页面中 我为表格指定了背景颜色 当我在 Chrome 中查看打印预览时 它没有采用背景颜色属性 所以我尝试了这个属性 webkit print color adjust exact 但仍然没有显示颜色 http js
  • MySQL:返回更新的行

    我正在尝试将这两个查询组合在扭曲的Python中 SELECT FROM table WHERE group id 1013 and time gt 100 and UPDATE table SET time 0 WHERE group i
  • 在 Angular 2 中测试服务时,NgModule“DynamicTestModule”的提供程序无效

    我有以下服务 import Injectable from angular core import MenuItem from classes menu item import ITEMS from static data items li