1

解決できない問題に出くわします。サブモジュール メソッドをスパイしようとしましたが、moduleSpy はスパイではないというエラーが表示され、次のエラー メッセージが表示されます。モジュールは npm パッケージです。

Error: <toHaveBeenCalled> : Expected a spy, but got undefined.

import * as module from 'package';
import { TOKEN } from 'injectionToken.ts'

describe('ExampleComponent', () => {
    let component: ExampleComponent;
    let fixture: ComponentFixture<ExampleComponent>;
    let moduleSpy;

    beforeEach(async(() => {
        moduleSpy = spyOn(module.sub, 'subModuleMethod');

        TestBed.configureTestingModule({
            declarations [ExampleComponent],
            providers: [
                { provide: TOKEN, useValue: module }
            ]
        }).compileComponents();
    }));

    beforeEach(() => {
        fixture = TestBed.createComponent(ExampleComponent);
        component = fixture.componentInstance;
    });

    it('test specific function call', () => {
        // press button to test the sub module method
        expect(moduleSpy.subModuleMethod).toHaveBeenCalled();
    });

})

スパイが認識されない理由を知っている人はいますか?

4

1 に答える 1

0

以前のバージョンの Angular/TypeScript で作業したことはありますが、それ以降のバージョンでは作業していません。

これはそれを説明する長いスレッドです: https://github.com/jasmine/jasmine/issues/1414

Jasmine がメンバーをスパイできるように webpack 4 モジュールを構成できますか?

github スレッドにはいくつかの解決策がありますが、それらの解決策はどれもうまくいきませんでした。

私のお気に入りの解決策はこれでした:

エラー: supportsScrollBehavior は構成可能と宣言されていません

于 2021-10-27T13:17:49.337 に答える