angular - Jasmine 测试:预期未定义等于 Object。(如何测试@input)
问题描述
我有这个错误的麻烦。我想我忘记了一些东西,无法弄清楚它是什么。任务很简单:只需测试我的简单组件。开始了:
import { Component, OnInit, Input } from '@angular/core';
import { ButtonModel } from './model/button.model';
@Component({
selector: 'app-button',
templateUrl: './button.component.html',
styleUrls: ['./button.component.scss']
})
export class ButtonComponent implements OnInit {
@Input() public button: ButtonModel;
constructor() { }
public ngOnInit(): void {
}
public getClasses(): [string, string] {
return [
this.button.Size,
this.button.Color
];
}
}
和测试:
import { Spectator, createHostFactory } from '@ngneat/spectator';
import { RouterTestingModule } from '@angular/router/testing';
import { ButtonComponent } from './button.component';
import { MockComponent } from 'ng-mocks';
describe('[ButtonComponent]', () => {
let spectator: Spectator<ButtonComponent>;
const createHost = createHostFactory({
component: MockComponent(ButtonComponent),
imports: [RouterTestingModule]
});
beforeEach(() => {
spectator = createHost('<app-button></app-button>');
});
it('should create', () => {
expect(spectator.component).toBeTruthy();
});
it('should get default classes', () => {
expect(spectator.component.getClasses()).toEqual(['big', 'primary-theme-color']);
});
});
和 HTML:
<button [ngClass]="getClasses()">
{{button.Text}}
</button>
还有那个错误:
预期未定义等于 ['big', 'primary-theme-color']。错误:预期未定义等于 ['big', 'primary-theme-color']。在用户上下文。( http://localhost:9876/_karma_webpack_/src/app/shared/components/button/button.component.spec.ts:24:46 ) 在 ZoneDelegate.invoke ( http://localhost:9876/_karma_webpack_/node_modules/ zone.js/dist/zone-evergreen.js:359:1 ) 在 ProxyZoneSpec.onInvoke ( http://localhost:9876/_karma_webpack_/node_modules/zone.js/dist/zone-testing.js:308:1 )
解决方案
您正在使用旁观者进行测试,您可以阅读该工具的文档:https ://github.com/ngneat/spectator
在你的情况下,它会spectator.setInput('button', {Text: 'my text', Size: '...', Color: '...'})
在你之前expect
推荐阅读
- java - Java + Visual Studio 资源文件夹,以便我可以执行 getResourceAsStream(this.FILE_NAME)
- java - 为什么服务器和客户端不能一起启动?
- python - 根据特定列的值计数添加/删除行
- path - Python 无法识别我的 PATH 配置
- sql - 来自单一来源的父子关系
- typescript - 如何确保保留元组元素标签?
- docker - 如何创建一个标签,其值仅在 RUN 命令后才知道
- python - 为什么 torch.utils.save_image 会覆盖我文件夹中保存的图像?
- apache-kafka - 为什么消费者要花时间在 Kafka 中关闭?
- python - pd.Series.dt.weekday 与 pd.Series.dt.dayofweek 之间有区别吗?