首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >“‘expect”是在没有当前规范时使用的

“‘expect”是在没有当前规范时使用的
EN

Stack Overflow用户
提问于 2017-01-02 17:38:24
回答 1查看 6K关注 0票数 6

我正在学习角2测试,我得到了一个错误,目前是没有意义的我。

'expect' was used when there was no current spec,

测试:

代码语言:javascript
复制
import {ExperimentsComponent} from "./experiments.component";
import {StateService} from "../common/state.service";
import {ExperimentsService} from "../common/experiments.service";

describe('experiments.component title and body should be correct',() => {

  let stateService = StateService;
  let experimentService = ExperimentsService;

  let app = new ExperimentsComponent(new stateService, new experimentService);

  expect(app.title).toBe('Experiments Page');
  expect(app.body).toBe('This is the about experiments body');

});

构成部分:

代码语言:javascript
复制
import {Component, OnInit} from "@angular/core";
import {Experiment} from "../common/experiment.model";
import {ExperimentsService} from "../common/experiments.service";
import {StateService} from "../common/state.service";


@Component({
    selector: 'experiments',
    template: require('./experiments.component.html'),

})
export class ExperimentsComponent implements OnInit {
    title: string = 'Experiments Page';
    body: string = 'This is the about experiments body';
    message: string;
    experiments: Experiment[];

    constructor(private _stateService: StateService,
                private _experimentsService: ExperimentsService) {
    }

    ngOnInit() {
        this.experiments = this._experimentsService.getExperiments();
        this.message = this._stateService.getMessage();
    }

    updateMessage(m: string): void {
        this._stateService.setMessage(m);
    }
}

最后,我想测试实践应用程序中的所有功能。但到目前为止,我只想让测试通过,这些测试是由角cli产生的。

从我从文档中读到的资料来看,我正在做的事情看起来是正确的。

EN

回答 1

Stack Overflow用户

发布于 2019-02-14 14:03:33

添加迟到的答案,因为我有同样的错误,但它是由另一个问题。在我的例子中,我测试了一个异步调用:

代码语言:javascript
复制
  it('can test for 404 error', () => {
    const emsg = `'products' with id='9999999' not found`;

    productService.getProduct(9999999).subscribe( <-- Async call made
      () => {
        fail('should have failed with the 404 error');
      },
      error => {
        expect(error.status).toEqual(404, 'status');
        expect(error.body.error).toEqual(emsg, 'error');
      }
    );
  });

因此,从角度测试中添加异步方法解决了这个问题:

代码语言:javascript
复制
  import { async } from '@angular/core/testing';

  it('can test for 404 error', async(() => {

编辑V10

从角版本10开始,async已被废弃,并已被waitForAsync所取代。因此,新版本的代码将是

代码语言:javascript
复制
  import { waitForAsync} from '@angular/core/testing';

  it('can test for 404 error', waitForAsync(() => {
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41431039

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档