2016-07-22 13 views
1

Ich möchte das Verhalten einer Bibliothek testen, wenn eine API in einem Browser nicht existiert.So entfernen Sie eine JS-API für Fenster/Navigator zum Komponententest?

Zum Beispiel, wenn ich die folgende Kontrolle:

if ('serviceWorker' in navigator && 
'PushManager' in window && 
'Notification' in window && 
'showNotification' in ServiceWorkerRegistration.prototype) { 
    // Do something 
} else { 
    throw new Error('Catch in test'); 
} 

Ist es möglich, Eigenschaften auf diesen globalen Bereichen vollständig entfernen?

+0

Geben sie als Abhängigkeit in Ihrem Code. – zerkms

Antwort

0

Ist es möglich, Eigenschaften auf diesen globalen Bereichen vollständig zu entfernen?

Nicht so weit ich weiß. Eine Lösung besteht darin, den Code unabhängig vom globalen Geltungsbereich zu machen.

Wickeln Sie diese Funktionsprüfung in eine Funktion ein, in der diese Objektgrundelemente als Parameter verwendet werden, und stellen Sie sie dann in Ihrem Test vor.