【问题标题】:testing an method in an angular component without dependencies在没有依赖关系的角度组件中测试方法
【发布时间】:2017-09-08 15:38:18
【问题描述】:

我正在使用 Angular 进行测试,我的项目是使用 CLI 创建的,因此无需进行测试设置。我已经查看了文档

https://angular.io/guide/testing

还有这些视频:

https://www.youtube.com/watch?v=XKVBLVlTjeE

https://www.youtube.com/watch?v=9-kumGACGYk

我发现自己越来越恼火。我正在寻找如何测试正在使用的方法的示例。不要介意依赖,不要介意异步调用(我的样式表和 html 是从单独的文件加载的,所以我知道我们一开始就需要一个异步调用,我只是说现在不要介意可观察或承诺)

我的问题是这样开始有意义的是,有人可以为以下代码编写一个测试并在整个过程中对其进行评论吗?

import { Component, OnInit } from '@angular/core';
import {Venue} from '../../models/venue/venue.model';

@Component({
  selector: 'app-venuelist',
  templateUrl: './venuelist.component.html',
  styleUrls: ['./venuelist.component.css']



 /* takes price number and returns number amount of $ */
        makePrice(n){
          let r = '';
          let c = 0;
          while(c < n){
            r = r + '$';
            c++;
          }
          return r;

【问题讨论】:

  • it('should do something', () =&gt; { expect(new SomeUnknownComponent().makePrice(0)).toBe(''); }); 您不发布相关代码,让我们很难给您一个好的答案。所以你是在自取其辱。
  • 实际上这绝对是完美的!请提交它作为答案,这样我就可以给你积分。这个不错!

标签: angular unit-testing typescript testing karma-jasmine


【解决方案1】:

你想调用一个类的方法。所以你需要创建那个类的实例,然后调用方法:

it('should do something', () => { 
  expect(new Venuelist().makePrice(0)).toBe(''); 
});

【讨论】:

  • 所以组件名称是venuelist,所以它会是新的venuelist().makePrice(0)).toBe('');
  • 很高兴你知道了。如果您发布了相关代码,我会从一开始就使用正确的名称。明白我的意思了吗?
  • 虽然应用选择器是在 cli 上默认附加到应用的组件名称,但我还是这样做了
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-09-05
  • 2017-08-07
  • 2016-08-02
相关资源
最近更新 更多