Tôi đang sử dụng Rails + AngularJS và đã chuyển sang sử dụng Thước đo cho tất cả các kết thúc của tôi để kết thúc kiểm tra. Tôi đã thiết lập nó bằng cách sử dụng protractor-rails gem giúp tôi sử dụng cơ sở dữ liệu thử nghiệm thay vì phát triển cơ sở dữ liệu cho các thử nghiệm của tôi.làm sạch sau khi thử nghiệm Thước đo
Vấn đề là sau khi tôi chạy thử nghiệm ví dụ: 'create_client_spec.js.coffee', sau đó tôi còn lại với một khách hàng mới trong bảng của tôi mà không được làm sạch sau khi thử nghiệm của tôi.
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")
)
Làm cách nào để dọn dẹp các thử nghiệm này một cách độc đáo?
Một ý tưởng tôi có là thêm phương thức trong afterEach để xóa ứng dụng khách mới sau mỗi lần thử nghiệm trong tệp này.
Cập nhật:
Tôi đã đặt sau trong helper.js.coffee tôi
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()
Sau đó tôi gọi là helper.delete_client() trong khối afterEach tôi trước khi đăng xuất. Nó hoạt động, nhưng có cách nào tốt hơn không?
Bạn có biết về chức năng tùy chọn 'onCleanUp' trong [protractor config] (https://github.com/angular/protractor/blob/master/docs/referenceConf.js#L195) không? – glepretre
Tôi không biết về tùy chọn onCleanUp này, tôi có thể gọi một công việc cào trong onCleanUp không? – map7
Tôi không chắc chắn về điều đó, nó sẽ tự động được gọi vào cuối tất cả các bài kiểm tra của bạn, đó là tất cả những gì tôi biết. – glepretre