如何访问当前型号?我知道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)
您应该能够使用moduleFor
,然后在测试中您可以使用this.subject()
来访问控制器。
moduleFor('controller:bookingsEdit', 'Bookings Edit Controller');
如果moduleFor
未定义。然后导入moduleFor import {moduleFor} from 'ember-qunit';
然后在测试中,您可以使用this.subject()
访问控制器
moduleFor(fullName [,description [,callbacks]])
fullName:(String) - 单位的全名,即 controller:application,route:index。
description:(String)optional - 模块的描述
回调:(对象)可选 - 正常的QUnit回调(设置和 teardown),除了需要之外,还允许你指定另一个 测试所需的单位。
http://guides.emberjs.com/v1.10.0/testing/testing-controllers/