首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在构造函数中使用Jasmine私有ActivatedRoute进行测试?

在构造函数中使用Jasmine私有ActivatedRoute进行测试的方法如下:

  1. 首先,需要导入所需的依赖项。在测试文件的开头,添加以下导入语句:
代码语言:txt
复制
import { ActivatedRoute } from '@angular/router';
import { BehaviorSubject } from 'rxjs';

import { MyClass } from './my-class'; // 要测试的类
  1. 创建一个辅助类来模拟ActivatedRoute。在测试文件中添加以下代码:
代码语言:txt
复制
class MockActivatedRoute {
  private subject = new BehaviorSubject(this.testParams);
  params = this.subject.asObservable();

  // 设置测试参数
  set testParams(params: any) {
    this.subject.next(params);
  }
}
  1. 在测试用例中,创建一个实例化MyClass的辅助函数,并在其中模拟ActivatedRoute。在测试文件中添加以下代码:
代码语言:txt
复制
function createMyClass(routeParams: any) {
  const activatedRoute = new MockActivatedRoute();
  activatedRoute.testParams = routeParams;

  return new MyClass(activatedRoute);
}
  1. 编写测试用例。在测试文件中添加以下代码:
代码语言:txt
复制
describe('MyClass', () => {
  it('should create', () => {
    const myClass = createMyClass({ id: 1 });
    expect(myClass).toBeTruthy();
  });

  it('should get route params', () => {
    const myClass = createMyClass({ id: 1 });
    myClass.getRouteParams().subscribe(params => {
      expect(params.id).toBe(1);
    });
  });
});

在上述代码中,我们首先创建了一个MockActivatedRoute类来模拟ActivatedRoute,并使用BehaviorSubject来模拟params属性的行为。然后,我们创建了一个辅助函数createMyClass,用于创建MyClass的实例,并将模拟的ActivatedRoute传递给构造函数。最后,我们编写了两个测试用例,分别测试了MyClass的创建和获取路由参数的功能。

这样,我们就可以在构造函数中使用Jasmine私有ActivatedRoute进行测试了。注意,在这个示例中,我们没有提及任何特定的云计算品牌商,如果需要推荐相关产品和产品介绍链接地址,请提供具体要求。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • Angular2 :从 beta 到 release4.0 版本升级总结

    :获取路由信息 路由事件实例,NavigationEnd表示导航事件变更完毕,等 反正改了挺多的,请自行查询官方API文档…[捂脸] 新增路由模块 路由使用NgModule创建,示例如下: import...进行静态引导.静态方案可以生成更小,启动更快的应用,默认优先使用。但此处因为有些动态计算环境的代码,故编译失败,此处手动关闭。 5....原因:angular(v4.1.1),需使用[ngStyle]属性方式对样式进行设置。 解决办法:1) 更改为[ngStyle]="{'color': someValidation ?...原因:angular(v4.1.1)使用ActivatedRoute的API获取路由信息。...使用angular-cli后无法自定义webpack的alias, 导致文件引入路径很长,../../../shared/。

    8.1K00

    为ES6配置JavaScript测试工具

    该模块可以让你选择的测试工具在加载模块时自动对模块进行编译。...该库允许Browserify在构建过程中使用Babel对代码进行转译。...ES6 imports 在测试使用ES6的import也是可行的。切记:测试代码也是代码。既然我们已经配置好了测试工具,任何在你应用中使用的特性也都可以在测试代码中使用。...在Mocha谨慎使用箭头函数 在Mocha请谨慎使用箭头函数。在某些情况下你需要使用this.timeout来控制一个测试在超时之前的等待时间。如果你使用了箭头函数,那这个配置就不会生效。...当你的测试存在测试替身(test double)时使用它是个好主意,因为它会在测试结束时自动帮你释放被替身的对象。但是由于它使用了this绑定,因此它无法在使用箭头函数时正常工作。

    2.9K20

    【C++】继承 ⑥ ( 继承构造函数和析构函数 | 类型兼容性原则 | 父类指针 指向 子类对象 | 使用 子类对象 为 父类对象 进行初始化 )

    " 公有继承 " 的 派生类 ( 子类 ) 对象 替代 , 该 派生类 ( 子类 ) 得到了 除 构造函数 和 析构函数 之外的 所有 成员变量 和 成员方法 ; 功能完整性 : " 公有继承 " 的...派生类 ( 子类 ) 本质上 具有 基类 ( 父类 ) 的 完整功能 , 使用 基类 可以解决的问题 , 使用 公有继承派生类 都能解决 ; 特别注意 : " 保护继承 " 和 " 私有继承 " 的...); } 2、使用 子类对象 为 父类对象 进行初始化 定义父类对象 , 可以直接使用 子类对象 进行初始化操作 ; // II....类型兼容性原则 : 使用 子类对象 为 父类对象 进行初始化 Parent parent = child; 3、完整代码示例 #include "iostream" using namespace...类型兼容性原则 : 使用 子类对象 为 父类对象 进行初始化 Parent parent3 = child; // 控制台暂停 , 按任意键继续向后执行 system(

    25720

    分享7个专业级的JavaScript测试库,提高你的工作效率

    https://github.com/jasmine/jasmine 使用示例 Jasmine是一个用于JavaScript代码的行为驱动开发(BDD)测试框架。...; }); }); 在上述代码,describe函数定义了一组相关的测试,it函数定义了一个单独的测试。...; } module.exports = myFunction; 当你想运行测试时,可以在终端运行以下命令: npx jasmine myFunction.spec.js 如果myFunction函数的行为符合我们的预期...,那么测试就会通过。如果函数的行为与我们的预期不符,那么测试就会失败,并显示一条描述失败原因的消息。 以上就是对Jasmine库的基本介绍和示例。...它也是测试框架无关的,所以你可以将它放入使用Jasmine、Mocha、Tape、Jest或我们自己的teenytest的代码库。它在GitHub上有超过1000颗星标。

    26620

    Angular 从入坑到挖坑 - Router 路由使用入门指北

    4.2、路由间的参数传递 在进行路由跳转时,很常见的一种使用情况是我们需要将某些数据作为参数传递到下一个页面,例如从列表中选择点击某一行数据,跳转到对应的详情页面 常见的参数传递有如下的两种方式 4.2.1...对于参数对象的属性(key)对应的属性值(value),我们可以绑定一个组件的属性进行动态的赋值,也可以通过添加单引号将参数值作为一个固定的数值,例如在下面代码的两个查询参数就是固定的值 <a class...同样的,我们也可以在 js 完成路由的跳转,对于这种使用场景,我们需要在进行 js 跳转的组件类通过构造函数依赖注入 Router 类,之后通过 Router 类的 navigate 方法完成路由的跳转...在 Angular ,需要在组件类依赖注入 ActivatedRoute 来获取传递的参数信息 这里的 queryParamMap 是一个 Observable 对象,所以这里需要使用 subscribe...,我们同样需要使用依赖注入的方式注入 Router 类,然后调用 navigate 方法进行跳转。

    4.2K50

    搭建 karma + jasmine 测试环境

    在前端开发的过程,我们会写很多的功能函数,这样就会涉及到对这些功能函数进行单元测试,而karma就是一个很好用的可以在浏览器环境中进行测试的集成工具。 1....在运行的时候,它会自动启动配置好的浏览器,同时也会启动一个 node 服务器,然后在启动好的浏览器执行测试代码,并将测试代码执行结果传回给 node 服务器,然后 node 服务器在打印出收到的执行结果...根据配置项的选择安装插件 (1) 测试框架选择的是jasmine,安装步骤如下: $ npm install jasmine-core karma-jasmine -D 复制代码 这里要装两个,一个是jasmine...(2) 浏览器选择的是PhantomJS,安装步骤如下: $ npm install karma-phantomjs-launcher -D 复制代码 (3) 如果涉及到对以ES6编写的代码进行测试,就要安装.../src/PraiseButton.js'; describe('测试点赞组件', function () { it('addOne() 函数', function () { var testPraiseButton

    1.7K20

    译|通过构建自己的JavaScript测试框架来了解JS测试

    如果传入的期望值与传递给 Expect 函数的实际值不符,则将布尔值与规范进行布尔比较。 安装和拆卸 有时候为了测试一个功能,我们需要进行一些设置,也许是创建一些测试对象。...这些活动称为“设置和拆卸”(用于清理),Jasmine 有一些功能可用来简化此工作: beforeAll 这个函数在 describe 测试套件的所有规范运行之前被调用一次。...看,我们的测试框架像 Jest 和 Jasmine 一样工作。它仅在 Node 上运行,在下一篇文章,我们将使其在浏览器上运行。..."scripts": { "test": "kwuo" ... } } 总结 我们建立了我们的测试框架,在这个过程,我们学会了如何使用全局来设置函数和属性在运行时任何地方可见。...我们看到了如何在项目中使用 describe、it、expect 和各种匹配函数来运行测试。下一次,你使用 Jest 或 Jasmine,你会更有信心,因为现在你知道它们是如何工作的。

    1.5K10

    protractor量角器软件_flashback啥意思

    下面的内容将使用 Jasmine 进行Jasmine 的当前版本是 2.3,我们将使用这个版本。...}); }); 这里,我们使用全局的 element 函数和 by 对象,它们也是 protractor 创建的函数,element 函数用来在页面定位 HTML 元素,函数返回一个 ElementFinder...可以通过这个对象与页面元素进行交互或者获取信息。在这个测试,我们使用了 sendKeys 在 input 元素输入内容,click 函数来模拟点击按钮,getText 获取元素的内容。...这是使用 ng-repeat 生成的表格实现的。 我们先进行一系列操作,然后测试它们出现在 log 历史记录,修改 spec.js 如下。...我们使用 Jasmine 的 toContain 断言来检查 “1 + 2” ,元素的文本内容还包含了时间戳和计算结果。 修复这个测试,正确地期望在第一个历史记录包含了 “3 + 4″。

    1.9K40

    TypeScript实现Map与HashMap

    返回 keys | values 迭代字典的数据(forEach) forEach方法接收一个回调函数作为参数,其回调函数有两个参数:key & value 获取字典的所有数据 遍历获取到的数据,调用回调函数参数将当前遍历到的对象的...调用需要使用的hash函数(loseloseHashCode | djb2HashCode) loseloseHashCode计算哈希值 首先,我们判断下key是否为数字,如果为数字不执行直接将其返回,...table,用于字典的存储 private table: { [key: string]: ValuePair }; 在构造初始化table,声明值转字符串函数并赋予其默认值...代码我们使用的是loseloseHashCode来生成hash值,这种方法会生成比较多的重复元素,因此不建议使用此方法,因为处理冲突会消耗很多的性能。...我们在上述代码实现了djb2HashCode方法,此方法产生重复的hash值的概率很小,因此我们应该使用此方法来生成,接下来我们将hashCode使用的方法改为djb2HashCode,测试下HashMap

    1.3K30

    Webpack单元测试,e2e测试

    需要安装的项目: jasmine:单元测试库 karma:测试框架,配置选择phantomjs浏览器 karma-jasmine:操作jasmine的插件 karma-webpack:webpack与karma...\test\karma.conf.js karma命令为私有安装,karma配置文件指定在test文件夹下。...config) { config.set({ // 基路径:表示karma从那个位置开始找文件 basePath: '', // 框架 frameworks: ['jasmine...reporters: ['progress'], // 服务器端口 port: 9876, // 报表是否有颜色区分 colors: true,...原理简要说明      selenium-server由于浏览器同源策略(域名、协议、端口相同才是同源,如不明白可以baidu)的限制,selenimue就以代理的方式进行目标站点的测试(也就是测试环境跑的浏览器连接是

    2.4K100

    搭建 karma + jasmine 测试环境

    在前端开发的过程,我们会写很多的功能函数,这样就会涉及到对这些功能函数进行单元测试,而karma就是一个很好用的可以在浏览器环境中进行测试的集成工具。 1....在运行的时候,它会自动启动配置好的浏览器,同时也会启动一个 node 服务器,然后在启动好的浏览器执行测试代码,并将测试代码执行结果传回给 node 服务器,然后 node 服务器在打印出收到的执行结果...根据配置项的选择安装插件 (1) 测试框架选择的是jasmine,安装步骤如下: $ npm install jasmine-core karma-jasmine -D 这里要装两个,一个是jasmine...(2) 浏览器选择的是PhantomJS,安装步骤如下: $ npm install karma-phantomjs-launcher -D (3) 如果涉及到对以ES6编写的代码进行测试,就要安装Babel...运行测试 $ karma start 8. 结束 按照上述步骤,大家应该可以配置好自己的 karma + jasmine 测试环境,如果遇到问题或者文中有写错的地方,欢迎大家来讨论。

    12810

    写代码无BUG,网易云前端单元测试方案总结

    jasmine 的出现就稍微缓解了一下这个问题,但也不够完整,jasmine提供一个测试框架,里面包含了 测试流程框架,断言函数,mock工具等测试中会遇到的工具。...jasmine 如果在 Jasmine 执行 DOM 级别的测试,就依然需要借助 Karma 或 JSDOM了,具体的配置这里就不再赘述。...Jest 和 Jasmine 具有非常相似的 API ,所以在 Jasmine 中用到的工具在 Jest 依然可以很自然地使用。...目前 Jest 不支持直接在真实浏览器中进行测试,其默认的启动器只提供了一个 JSDOM 环境,在浏览器中进行单元测试目前只有 Karma 方案能做到,所以也可以使用 Karma + Jest 方案实现...使用 Jest + Enzyme 对 React 进行单元测试 ?

    9.6K20

    Node.js的下一代浏览器和移动自动化测试框架-WebdriverIO

    1、前言 web自动化测试工具Selenium支持多种语言,Python、Java、Ruby、JavaScript等,大多数测试人员使用最多的语言就是Python、Java了,并且很多技术社区与网上的学习资料查找起来很方便...它简化了与应用的交互,并提供了一系列插件,帮助你构建可扩展、健壮且稳定的测试套件。 功能特点: 可扩展:添加助手函数或更复杂的命令集和组合。...本机桌面应用程序(例如,使用Electron.js编写)。 在浏览器对web组件进行单元或组件测试。...- jasmine测试框架适配器。...WebdriverIO允许你使用WebDriver本地运行测试,也可以通过像Sauce Labs这样的云提供商使用远程用户代理进行测试

    10110
    领券