Tôi có một dự án Marionette, tương tự như thiết lập được mô tả trong http://www.backbonerails.com/ Tôi đang sử dụng Rails, Coffeescript và Jasmine/Sinon cho thông số kỹ thuật.Thử nghiệm Mô-đun rối trong cô lập với Jasmine
Tôi đang gặp sự cố khi kiểm tra mô-đun. Một ví dụ là bộ định tuyến:
@MyApp.module "DashboardApp", (DashboardApp, App, Backbone, Marionette, $, _) ->
class DashboardApp.Router extends Marionette.AppRouter
appRoutes:
"dashboard" : "showDashboard"
API =
showDashboard: ->
DashboardApp.Show.Controller.showDashboard()
App.addInitializer ->
new DashboardApp.Router
controller: API
Tôi không chắc chắn làm thế nào để kiểm tra điều này tách biệt với Ứng dụng (window.MyApp). Tôi muốn cơ bản kích hoạt "#dashboard" route và khẳng định rằng showDashboard được gọi, mà không cần phải để cho toàn bộ ứng dụng tham gia vào việc này. Chúng tôi đang sử dụng đường dẫn tài sản Rails (vì vậy không có RequireJS), vì vậy tất cả các tệp JS được tải khi bắt đầu. Những gì tôi nghĩ rằng sẽ làm việc tốt là bằng cách nào đó giả sử các đối tượng ứng dụng được sử dụng trong mô-đun này, nhưng tôi mở cửa cho bất kỳ giải pháp.
Vấn đề khác mà tôi đã tương tự đang thử nghiệm rối lệnh và reqres, ví dụ như trong một cái nhìn Tôi có
App.execute("navigate:root")
Một lần nữa vấn đề là tôi không muốn có những ứng dụng thực tế tham gia spec, tôi muốn ví dụ làm cho một Marionette.Application mới chỉ cho spec. Khung nhìn nằm trong một mô-đun được định nghĩa giống như tôi đã chỉ ra trong ví dụ mã đầu tiên.
Về cơ bản tôi muốn tránh sử dụng ứng dụng thực trong thông số kỹ thuật và sử dụng mô hình hoặc (có lẽ tốt hơn/dễ dàng hơn) chỉ là một Marionette.Application mới. Vì vậy, điều này sẽ hữu ích cho tôi trong mọi trường hợp mọi thứ đi qua đối tượng ứng dụng, ví dụ như công cụ Wreqr, công cụ khởi tạo cho bộ định tuyến, v.v.