规范没有期望茉莉花

Posted

技术标签:

【中文标题】规范没有期望茉莉花【英文标题】:spec has no expextations Jasmine 【发布时间】:2020-05-07 16:09:38 【问题描述】:

这是我第一次进行角度测试。我正在使用 Jasmine 和 Karma。所以诀窍是,这个测试实际上通过了,我在覆盖率报告中看到了它。但是测试给了我一个错误,'Spec'AppComponent 应该检查函数 closeMenus()' 没有期望。尽管。我有以下代码:

app.components.ts

import  Component, ViewChild, Directive  from '@angular/core';
import  MatSidenav  from '@angular/material';

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

export class AppComponent 
  title = 'myApp';

  @ViewChild('sidenav', static:true) sidenavbar : MatSidenav;

  openmenu : string = "";

  closeMenus() 
    this.sidenavbar.close();
  

app.component.spec.ts

import  AppComponent  from './app.component';
import  TestBed, async, fakeAsync  from '@angular/core/testing';
import  RouterTestingModule  from '@angular/router/testing';

import * as material from '@angular/material';

describe('AppComponent', async() => 
  beforeEach(async(() => 
    TestBed.configureTestingModule(
      imports: [
        RouterTestingModule,
        material.MatAutocompleteModule,
        ...
        material.MatTooltipModule,
      ],
      declarations: [
        AppComponent,
      ],
    ).compileComponents();
  ));

  // works but SPEC HAS NO EXPECTATIONS
  it('should check function closeMenus()', (() => 
    const fixture = TestBed.createComponent(AppComponent);
    const app = fixture.debugElement.componentInstance;
    spyOn(app.sidenavbar, 'close');
    app.closeMenus();
    expect(app.sidenavbar.close).toHaveBeenCalled;
  ));
);

我在这里做错了吗?

感谢您的帮助,祝您有愉快的一天:)

【问题讨论】:

【参考方案1】:

如你所愿,你错过了()

expect(app.sidenavbar.close).toHaveBeenCalled();

【讨论】:

以上是关于规范没有期望茉莉花的主要内容,如果未能解决你的问题,请参考以下文章

终端错误中的 SQL:不匹配的输入 ')' 期望(在原始类型规范中靠近 'VARCHAR'

不匹配的输入 'org' 期望在表文件格式规范中靠近 'BY' 的 StringLiteral

W3C 地理定位 API 没有错误 没有期望也没有结果

RSpec:期望更改多个

RSpec:如何测试 Rails 记录器消息期望?

《对软件工程课程的期望》