我有一個Marionette項目,類似於http://www.backbonerails.com/ 中描述的設置。我正在使用Rails,Coffeescript和Jasmine/Sinon來查看規格。與Jasmine隔離測試Marionette模塊
我在單獨測試模塊時遇到問題。一個例子是路由器:
@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
我不知道如何從App(window.MyApp)隔離測試這個。我想基本上觸發「#dashboard」路由並聲明showDashboard被調用,而不必讓整個應用程序參與。我們使用Rails資產管道(因此不需要RequireJS),因此所有JS文件都在開始時加載。我認爲可以正常工作的是以某種方式模擬此模塊中使用的App對象,但我對任何解決方案都是開放的。
我也有類似的正在測試木偶另一個問題命令和reqres,例如在視圖中我有
App.execute("navigate:root")
同樣的問題是,我不希望有實際應用參與規格,我想例如根據規格製作新的Marionette.Application。該視圖位於與第一個代碼示例中顯示的方式相同的模塊中。
基本上我想避免在規範中使用真正的應用程序,並使用模擬或(可能更好/更容易)只是一個新的Marionette.Application。所以這對我來說在所有通過應用程序對象的情況下都很有用,例如Wreqr的東西,路由器的初始值設定程序等。