由于断线,因果测试失败了吗?

问题描述 投票:2回答:1

在过去几个小时里一直处于轻微的状况。我正在尝试学习Angular 2,在那次追求中,我决定创建一个基础骨架,我可以构建我的ng2应用程序。这最终让我得到了我的问题。我的骨架已经相对接近完成但我在第一次Jasmine测试时遇到了错误。从我可以告诉它看起来它可能来自div中的换行符虽然我不是100%肯定。我已经完成了一些前端开发,但也没有必要进行测试(愚蠢),所以这是我第一次通过。由于Angular2尚未正式发布,我目前正在使用plugin插入我的模板并内联到我的ng2组件中。据我所知,这是问题的根源。我在测试中使用expect(<ng2-element>)toHaveText(...)结构,这是目前的情况:

NG2元素=

<p>{{ message }}</p>

测试通过。 NG2元素=

<p>{{ message }}</p>

测试失败

任何帮助将不胜感激! :)我的骨架repo

每次请求失败测试的代码:

import {Component, provide} from '@angular/core';
import {RouteSegment} from '@angular/router';
import {
  async,
  beforeEach,
  beforeEachProviders,
  describe,
  expect,
  inject,
  it,
} from '@angular/core/testing';
import {TestComponentBuilder} from '@angular/compiler/testing';

import {Greeter} from '../shared/index';
import {Hello} from './hello.component';

describe('Hello', () => {
  beforeEachProviders(() => [Greeter]);

  it('renders greeting', async(inject([TestComponentBuilder], (tcb) => {
    tcb.createAsync(Hello)
      .then((fixture) => {
        fixture.detectChanges();

        expect(fixture.debugElement.nativeElement).toHaveText('Hello, Angular2!');
      });
  })));
});
javascript angular karma-jasmine
1个回答
1
投票

基于docstoHaveText有以下文档:

期望元素具有完全给定的文本。

所以你需要警惕白色空间。

似乎应该有toContainText进行部分匹配,但是直到某些东西存在,你可以扮演自己的角色。

另外,我相信您也可以执行以下操作(警告:未经测试):

expect(fixture.debugElement.nativeElement.getText()).toContain('Hello, Angular2!');
© www.soinside.com 2019 - 2024. All rights reserved.