Unit testing 如何在呈现视图的Ember CLI中为视图创建单元测试(如组件测试)
我在google中找不到一个在Ember CLI中进行视图单元测试的示例来呈现视图(没有呈现所有应用程序) 我想把它用于Unit testing 如何在呈现视图的Ember CLI中为视图创建单元测试(如组件测试),unit-testing,ember.js,ember-cli,Unit Testing,Ember.js,Ember Cli,我在google中找不到一个在Ember CLI中进行视图单元测试的示例来呈现视图(没有呈现所有应用程序) 我想把它用于didinrelationhook中注册的测试事件 对于组件,我可以很容易地找到文档。要在使用moduleForComponent的测试中呈现组件,只需执行以下操作: test("component test", function(){ var component = this.subject(), element = this.append(); ok(eleme
didinrelation
hook中注册的测试事件
对于组件,我可以很容易地找到文档。要在使用moduleForComponent
的测试中呈现组件,只需执行以下操作:
test("component test", function(){
var component = this.subject(),
element = this.append();
ok(element.is('.clickable'), 'has the clickable class');
});
但是如何对视图执行此操作?我使用这种方式仅在单元测试中渲染视图: 需要注意的一点是,您需要明确地
需要所有模板、部分和助手。否则,由于查找错误,测试将失败
tests/unit/views/main test.js
:
import Ember from 'ember';
import { test, moduleFor } from 'ember-qunit';
var view;
moduleFor('view:main', 'MainView', {
needs: ['template:main'], // won't find the 'main' template without this
setup: function() {
var controller = Ember.ObjectController.extend({
//mockController if needs
}).create();
view = this.subject({
controller: controller,
templateName: 'main',
});
Ember.run(function() {
view.appendTo('#ember-testing');
});
},
teardown: function() {
Ember.run(function() {
view.destroy();
});
},
});
test("didInsertElement", function(){
var element = Ember.$('.main');
var controller = view.get('controller');
var eventForPressCtrlAltM = Ember.$.Event( "keydown", { which: 77, altKey: true, ctrlKey: true } );
Ember.run(function() {
element.trigger(eventForPressCtrlAltM);
});
strictEqual(/* ... */);
});