Ho un progetto Marionette, simile alla configurazione descritta in http://www.backbonerails.com/ Sto usando Rails, Coffeescript e Jasmine/Sinon per le specifiche.Test dei moduli Marionette in isolamento con Jasmine
Ho problemi durante il test dei moduli in isolamento. Un esempio è il router:
@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
Non sono sicuro di come testare questo in isolamento da App (window.MyApp). Vorrei fondamentalmente attivare la route "#dashboard" e affermare che showDashboard viene chiamato, senza dover lasciare che l'intera applicazione partecipi a questo. Stiamo utilizzando la pipeline delle risorse di Rails (quindi nessun RequireJS), quindi tutti i file JS vengono caricati all'avvio. Quello che penso funzionerebbe bene è in qualche modo prendere in giro l'oggetto App usato in questo modulo, ma sono aperto a qualsiasi soluzione.
L'altro problema che ho simile sta testando Marionette comandi e reqres, ad esempio, in una vista devo
App.execute("navigate:root")
Anche in questo caso il problema è che io non voglio avere l'applicazione reale partecipare alla spec, voglio ad es crea una nuova Marionetta.Applicazione solo per le specifiche. La vista è in un modulo che è definito nello stesso modo mostrato nel primo esempio di codice.
Fondamentalmente voglio evitare di utilizzare l'applicazione reale in specifiche, e utilizzare un modello o (probabilmente migliore/più facile) solo una nuova Marionette.Application. Quindi questo sarebbe utile per me in tutti i casi in cui le cose vanno attraverso l'oggetto applicazione, ad esempio Wreqr roba, inizializzatori per i router ecc