简体   繁体   English

Jasmine spy 无法在 Ionic App 中使用 Capacitor Plugin

[英]Jasmine spy not working on Capacitor Plugin in Ionic App

I'm trying to set up an unit test for an Ionic App.我正在尝试为 Ionic 应用程序设置单元测试。 In my specs I have:在我的规格中,我有:

it('should not change status bar on browser', async () => {
  spyOn(Plugins.StatusBar, 'setStyle');

  const service: AppService = TestBed.inject(AppService);
  await service.initApp();

  expect(Plugins.StatusBar.setStyle).not.toHaveBeenCalled();
});

But it fails with:但它失败了:

Error: <toHaveBeenCalled> : Expected a spy, but got Function.
    Usage: expect(<spyObj>).toHaveBeenCalled() in node_modules/jasmine-core/lib/jasmine-core/jasmine.js (line 5180)
    <Jasmine>
    http://localhost:9876/_karma_webpack_/main.js:1161:112
    <Jasmine>
    fulfilled@http://localhost:9876/_karma_webpack_/main.js:716:62
    run@http://localhost:9876/_karma_webpack_/polyfills.js:3595:53
    http://localhost:9876/_karma_webpack_/polyfills.js:4329:43
    runTask@http://localhost:9876/_karma_webpack_/polyfills.js:3639:61
    drainMicroTaskQueue@http://localhost:9876/_karma_webpack_/polyfills.js:4041:46
    <Jasmine>

I've setup a mock in my project for testing with this same object.我在我的项目中设置了一个模拟,用于使用相同的对象进行测试。 Your problem is that you're trying to call spyOn() on an object that isn't a mock.你的问题是你试图在一个不是模拟的对象上调用spyOn()

The following incorporates elements that worked for my tests:以下包含适用于我的测试的元素:

it('should not change status bar on browser', async () => {
  statusBarSpy = jasmine.createSpyObj<StatusBarPlugin>('StatusBar', ['setStyle']);

  const service: AppService = TestBed.inject(AppService);
  await service.initApp();

  expect(statusBarSpy.setStyle).not.toHaveBeenCalled();
});

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 离子电容相机插件 - Ionic Capacitor camera plugin Ionic App Availability 插件(电容器)在 android 上总是返回 false - Ionic App Availability plugin (capacitor) always returns false on android 带有网络电容器的 Ionic 4 和烤面包机无法离线运行 PWA 应用程序 - Ionic 4 and Toaster with Network Capacitor is not working PWA app offline Angular 测试:电容器浏览器插件中的“预期是间谍,但得到了功能” - Angular Testing: "Expected a spy, but got Function" in Capacitor Browser Plugin 离子电容器共享插件不与whatsapp共享图像 - ionic capacitor share plugin not sharing image with whatsapp Capacitor/Ionic4:未安装 plugin_not_installed 的 BarcodeScanner - Capacitor/Ionic4: BarcodeScanner with plugin_not_installed 离子电容器运行 android:Task:capacitor-app:compileDebugJavaWithJavac FAILED - ionic capacitor run android : Task :capacitor-app:compileDebugJavaWithJavac FAILED 防止在 Angular Capacitor Ionic 应用程序中返回导航 - Prevent back navigation in a Angular Capacitor Ionic app Angularfire 不适用于 ios 上的离子电容器应用程序 - Angularfire does not work on ionic capacitor app on ios 将 Ionic/Capacitor 应用程序升级到 Angular/FIRe V7 和 Firebase V9 无法在 iOS 上运行 - Upgrade to Angular/FIre V7 and Firebase V9 for Ionic/Capacitor App not working on iOS
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM