2015-07-22 89 views
2

如何訪問當前模型?我知道application.__container_.lookup,但我知道這有點破解。從驗收測試訪問模型

import Ember from 'ember'; 
import { module, test } from 'qunit'; 
import startApp from 'myapp/tests/helpers/start-app'; 

let application; 

module('Acceptance | booking/edit', { 
    beforeEach: function() { 
    application = startApp(); 
    }, 

    afterEach: function() { 
    Ember.run(application, 'destroy'); 
    } 
}); 

test('visiting /booking/edit', function(assert) { 
    visit('/booking/1'); 

    //At this point I would like to access the model returned from the route model hook. 

    andThen(function() { 
    assert.equal(currentURL(), '/booking/1'); 
    }); 
}); 

樣本路線摘錄。

this.route('booking', { path:'/booking' }, function() { 
    this.route('edit', { path:'/:booking_id' }, function() { 
     this.route('account', { path:'/account' }); 

     ... 
    }); 

    ... 
    }); 
+0

「當前模型」你問你的路線返回「/預訂/ 1」的模式?你是否正在使用像ember-data之類的緩存/身份映射,或者這是否都是由ajax驅動的?你的路線今天是什麼樣的? –

+0

我的意思是模型鉤子在路線中返回的模型,正如您正確指出的那樣。我正在使用燼數據。我會發布路線。 – jax

+0

你需要從模型中得到什麼信息? –

回答

1

您應該能夠使用moduleFor,然後在測試中您可以使用this.subject()訪問控制器。

moduleFor('controller:bookingsEdit', 'Bookings Edit Controller');

如果moduleFor是不確定的。然後導入moduleFor import {moduleFor} from 'ember-qunit'; 然後測試中您可以使用this.subject()訪問控制器

moduleFor(全名[,說明,回調])

全名:(字符串) - 全名該單元即 控制器:application,route:index。

說明:(字符串)可選 - 模塊的描述

回調(目標)可選 - 普通QUnit回調(設置和 拆除),與除需要,它允許您指定的其他 單位測試將需要。

http://guides.emberjs.com/v1.10.0/testing/testing-controllers/

https://github.com/rwjblue/ember-qunit

當你說