Uso Rails + AngularJS e sono passato all'utilizzo di Goniometro per tutti i miei test end-to-end. L'ho configurato usando lo protractor-rails gem che mi aiuta a usare il database di test invece del database di sviluppo per i miei test.pulizia dopo i test del goniometro
Il problema è dopo aver eseguito un test, ad esempio: 'create_client_spec.js.coffee', quindi mi rimane un nuovo client nella mia tabella che non viene pulito dopo il test.
helper = require('../../helper.js.coffee')
describe('create a new client', ->
beforeEach ->
helper.login()
afterEach ->
helper.logout()
it 'shows the client after creation', ->
browser.get('/api#/clients')
element(By.id("new_btn")).click()
element(By.id("name")).sendKeys("John Smith")
element(By.id("create_btn")).click()
expect(element(By.id("heading")).getText()).toContain("John Smith")
)
Come si puliscono questi test in modo corretto?
Un'idea che avevo era di aggiungere un metodo in afterEach per rimuovere il nuovo client dopo ogni test in questo file.
Aggiornamento:
ho messo il seguente nel mio helper.js.coffee
delete_client: ->
last=element.all(By.id("listing")).last()
last.element(By.id("delete")).click()
this.accept_dialog()
accept_dialog: ->
# Accept the dialog which is displayed
ptor = protractor.getInstance()
alertDialog = ptor.switchTo().alert()
alertDialog.accept()
Poi io chiamo il helper.delete_client() nel mio blocco afterEach prima di uscire. Funziona, ma c'è un modo migliore?
Conoscete la funzione opzionale 'onCleanUp' in [goniometro] (https://github.com/angular/protractor/blob/master/docs/referenceConf.js#L195)? – glepretre
No Non sapevo di questa opzione onCleanUp, potevo chiamare un'attività rake in onCleanUp? – map7
Non ne sono sicuro, viene automaticamente chiamato alla fine di tutti i test, è tutto quello che so. – glepretre