得到这个不是angular jasmine测试中的函数错误

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

我是角度测试的新手,只是想让我的第一个测试通过。我正在寻找解决这个错误的方法。我不确定下一步该怎么做。一些帮助会很棒!

这是我的 component.ts 文件 component.ts file

这是我的 component.spec.ts 文件 component.spec.ts file

这是我的错误信息 jasmine error

我有点知道这个问题只是不知道解决这个格式日期错误的方法。 我真的只想让第一个测试通过

angular typescript testing karma-jasmine
1个回答
0
投票

你应该模拟你的依赖关系,在这种情况下:

...
const sharedServiceMock = {
    formatDate: jest.fn();
} as unknown as SharedService; // Just if you need to type it. Don't use any

beforeEach(async () => {
    ...
    providers: [
        ...
        { provide: SharedService, useValue: sharedServiceMock },
        ...
    ]
    ...
}).compileComponents();
...

单元测试意味着,你模拟所有外部的东西,只测试你的组件功能的结果。没关系,如果“SharedService”的实现按预期工作,因为你应该已经在 shared.service.spec.ts 中进行了单元测试。

如果 formatDate 函数应该返回一些东西,在组件函数中使用了什么(例如在条件中),那么您可以模拟一个返回值(只是一个例子):

describe('component function', () => {
    it('should run successful', {
        sharedServiceMock.formatDate.mockReturnValue('1970-01-01');
        expect(testUnit.someFunction()).toBe(...);
    }) 
})
© www.soinside.com 2019 - 2024. All rights reserved.