Ich benutze Rails + AngularJS und habe für alle meine End-to-End-Tests den Winkelmesser verwendet. Ich habe es mit der protractor-rails gem eingerichtet, die mir hilft, die Testdatenbank anstelle der Entwicklungsdatenbank für meine Tests zu verwenden.Aufräumen nach dem Winkelmesser-Test
Das Problem ist, nachdem ich einen Test zB: 'create_client_spec.js.coffee' ausgeführt habe, dann bin ich mit einem neuen Client in meiner Tabelle, die nach meinem Test nicht aufgeräumt ist.
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")
)
Wie säubere ich diese Tests gut?
Eine Idee, die ich hatte, war eine Methode in afterEach hinzuzufügen, um den neuen Client nach jedem Test in dieser Datei zu entfernen.
Update:
ich folgendes in meinem helper.js.coffee gesetzt haben
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()
Dann rufe ich die helper.delete_client() in meinem afterEach Block vor sich abzumelden. Es funktioniert, aber gibt es einen besseren Weg?
Kennen Sie die optionale Option 'onCleanUp' in [Winkelmesserkonfiguration] (https://github.com/angular/protractor/blob/master/docs/referenceConf.js#L195)? – glepretre
Nein, ich wusste nichts über diese Option onCleanUp, könnte ich eine Rake-Aufgabe in onCleanUp aufrufen? – map7
Ich bin mir nicht sicher, es wird automatisch am Ende all Ihrer Tests aufgerufen, das ist alles was ich weiß. – glepretre