2013-09-21 117 views
11

Trong các bài kiểm tra chấp nhận của tôi, tôi muốn mô phỏng các nút bấm và chuyển đổi kết quả trở lại.Làm thế nào để mô phỏng nút quay lại khi thử nghiệm các ứng dụng Ember.js?

Tôi có những điều sau đây, nhưng tôi có cảm giác sai.

test("back to search page", function(){ 
    visit('/') 
    .then(function(){ 
     return fillIn('.search input', 'hi'); 
    }) 
    .then(function(){ 
     return click('.search button'); 
    }) 
    .then(function(){ 
     // I want to go back here 
     return visit('/'); 
    }) 
    .then(function(){ 
     var keyword = find('.search input').val(); 
     equal(keyword, ''); 
     ok(!exists('.search .results')); 
    }); 
}) 

Cách nào đúng để mô phỏng nút quay lại trong thử nghiệm?

Trả lời

8

window.history.back() hoặc window.history.go(-1)

+2

Điều này không hoạt động khi được sử dụng với các kiểm tra vì nó buộc toàn bộ cửa sổ trở lại 1, không phải tuyến đường. Về cơ bản nó sẽ đưa nó đến một trang khác. –

+5

Điều này là do các thử nghiệm theo mặc định sử dụng NoneLocation không theo dõi lịch sử. Bạn sẽ phải thay đổi vị trí của mình thành HashLocation nếu bạn muốn kiểm tra chức năng quay lại hoặc thực hiện những gì bạn đang làm. – alexspeller

+0

Bạn có bất kỳ tham chiếu nào về cách đặt HashLocation không? –

1

Tôi đã viết thử nghiệm người trợ giúp để mô phỏng các nút điều hướng của trình duyệt quay lại và chuyển tiếp và xuất bản chúng dưới dạng addon ember-cli: ember-cli-browser-navigation-button-test-helper

Chúng hiển thị 3 người kiểm tra: backButton, forwardButton, setupBrowserNavigationButtons. Người cuối cùng đăng ký dịch vụ, dịch vụ ghi nhật ký thay đổi vị trí và sử dụng chuyển tiếp để quay lại hoặc chuyển tiếp.

Nó cũng hoạt động với mặc định location: 'none'.