2014-10-15 25 views
7

Tôi dường như không nhận được móc mô hình và hành động được kích hoạt từ thử nghiệm đơn vị.Làm thế nào để kiểm tra đơn vị Tuyến đường trong ứng dụng ember-cli bằng cách sử dụng qunit?

Bất kỳ mẫu/blog nào làm môi trường này sẽ là một trợ giúp tuyệt vời!

Tôi thấy liên kết này What kind of unit test solution for the routes in Ember.js?

nhưng route.model() được ném lỗi như: chuyển tiếp không được định nghĩa.

import { test, moduleFor } from 'ember-qunit'; 

moduleFor('route:sample', 'SampleRoute', { 
    // Specify the other units that are required for this test. 
}); 

test("beforeModel hook works", function(){ 
    var route = this.subject(); 
    Ember.run(function(){ 
     route.set("model", "Sample data"); 
    }) 
    console.log("Model set. Was beforeModel hook called?"); 
}); 

Các mẫu Route

import Ember from 'ember'; 

export default Ember.Route.extend({ 

    beforeModel: function (transition) { 
     console.log("Inside before-model hook"); 
    }, 

    afterModel: function() { 
     console.log("In after-model hook"); 
    } 
}); 
+0

Bạn có thể thêm mã thử nghiệm của mình tại đây không? –

+0

@PatsyIssa móc mô hình không được kích hoạt trong các thử nghiệm. – Stuarty

Trả lời

1

Thật không may, đó không phải là khá cách làm việc. beforeModel không đơn giản được gọi trước khi model được đặt và afterModel sau đó. Chúng chỉ là móc được gọi trong dãy đó (beforeModel -> model -> afterModel) như là một phần của vòng đời của một tuyến đường.

Thật không may, tôi đã không tìm thấy cách tốt để kiểm tra đơn vị Tuyến đường. Nếu bạn có logic cụ thể beforeModel mà bạn cần kiểm tra thì có thể bạn chỉ cần gọi trực tiếp beforeModel? Tôi đã thấy rằng logic Tuyến đường được kiểm tra tốt nhất thông qua các bài kiểm tra kiểu chấp nhận, vì sau đó bạn có Route được gọi theo cách tương tự như khi ứng dụng thực sự đang chạy.

Các vấn đề liên quan