2016-07-05 24 views
5

Su Jasmine website Vedo che è possibile disabilitare suite per xdescribe o specifiche individuali per xit. C'è un modo per disabilitare solo un'aspettativa (come xexpect)?Disabilita le aspettative del gelsomino, come xdescribe o xit?

Il motivo per questo che sto chiedendo questo è perché sto scrivendo test E2E con goniometro e nella nostra continua integrazione che facciamo non ancora (se mai) avere accesso al database, anche se a livello locale siamo in grado di eseguire fine reale test di fine con accesso al database, per esempio.

Desidero contrassegnare le aspettative individuali come facoltative, a seconda di una configurazione o di una variabile di ambiente. Sarebbe bello fare un interruttore una volta, e quindi creare un wrapper around expect, che fallisce solo se stiamo eseguendo i test localmente (con accesso al database).

Così, per esempio posso creare una nuova famiglia spec:

if (process.env.DB_AVAILABLE) { 
    dbit = it; 
} else { 
    dbit = xit; 
} 

e scrittura specifiche che dipendono connessione al database come segue:

dbit('creates new user', function() {}); 

C'è un modo per fare lo stesso con expect (ad es. dbexpect)?

Se c'è qualcosa di fondamentalmente sbagliato nel mio approccio, non trattenerlo e fammelo sapere.

+0

Non sei sicuro di anteponendo alla dichiarazione 'expect' - ma potresti usare 'browser.getProcessedConfig()' e controllare 'seleniumAddress' e fare' expect' condizionali (assumendo che tu abbia 2 configs, uno per local e uno per il server CI). 'if (local) {expect (true) .toBe (true)} else {expect (false) .toBe (false)}' ... ma questo potrebbe essere costoso se lo si fa in molti posti. – Gunderson

+0

Inoltre non ho mai nemmeno pensato di cambiare 'it' in una variabile basata sull'ambiente ... grazie per questo :) – Gunderson

+0

Grazie. Sì, ci ho pensato, ma stavo cercando una soluzione pulita –

risposta

1

Si potrebbe creare il proprio xexpect implementando tutti i metodi/proprietà con funzione di vuoto:

var xexpect = function() { 
    return xexpect; 
}; 

Object.getOwnPropertyNames(jasmine.Expectation.prototype).forEach(function(name){ 
    xexpect[name] = xexpect; 
}); 

Object.defineProperty(xexpect, 'not', {get: xexpect}); 

Usage:

xexpect(1).toBeGreaterThan(2); 

xexpect(true).not.toEqual(true); 
Problemi correlati