: 未声明为可写或没有setter

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

我正在尝试用茉莉花和角来监视导出的功能。我正在使用以下模式将功能导入到我的测试文件中:import * as HelperObject from '../file-parse'具有要监视的对象,然后指定其导出的功能来创建监视。所以,我有

file-to-test.spec.ts

import * as ParseHelper from './file-parser';

describe('ParserWorker', () => {
    it('should do something', () => {
       const mockResponse: CustomType = new CustomType()
       const spy = spyOn(ParseHelper, 'parser').and.returnValue(mockResponse)
    })
})

file-parser.ts文件中,我具有此导出的功能

export function parser(fl: File, hd: boolean = false): CustomType{
    ... do something

    return CustomTypeObject;
}

[当我运行此测试时,业力向我显示此错误:

Error: <spyOn> : parser is not declared writable or has no setter

我用这种方法毫无疑问地监视了单个导出的函数,请注意,这些函数不是任何有角度的组件或服务,它只是一个类帮助程序,具有一些需要传递给Web Worker的功能。

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

this site,如果您的文件解析器是单个函数,则可以这样做。

添加默认声明

export function parser(fl: File, hd: boolean = false): CustomType{
    ... do something

    return CustomTypeObject;
}

export default parser

和spyOn将'解析器'更改为'默认']

import * as ParseHelper from './file-parser';

describe('ParserWorker', () => {
    it('should do something', () => {
       const mockResponse: CustomType = new CustomType()
       const spy = spyOn(ParseHelper, 'default').and.returnValue(mockResponse)
    })
})
© www.soinside.com 2019 - 2024. All rights reserved.