第二个测试,说h3元素存在,应该明显失败,但不是。发生了什么事?
使用Mocha,Chai,Ember和ember-mocha-adapter,我创建了这个简单的例子:http://jsfiddle.net/signer247/UD2D3/4/。
HTML
<div id="mocha"></div>
<hr/>
<div id="ember-testing"></div>
<script type="text/x-handlebars" data-template-name="application">
<h1>Ember.js Testing with Ember Mocha Adapter</h1>
</script>
的CoffeeScript
App = Em.Application.create()
App.Router.map ->
@route 'index', path: '/'
App.rootElement = '#ember-testing';
App.setupForTesting()
App.injectTestHelpers()
Ember.Test.adapter = Ember.Test.MochaAdapter.create()
chai.should()
describe 'Changing a site via visit in the test with andThen helper', ->
beforeEach ->
App.reset()
visit('/')
it 'should work', ->
andThen ->
$c = $(App.rootElement)
$c.find('h1').should.exist
it 'should fail', ->
andThen ->
$c = $(App.rootElement)
$c.find('h3').should.exist
$(document).ready ->
mocha.run();
我的JSFiddle:http://jsfiddle.net/signer247/UD2D3/4/
我从这个例子构建了我的JSFiddle:http://jsfiddle.net/UD2D3/1/
这是ember-mocha-adapter:https://github.com/teddyzeenny/ember-mocha-adapter
答案 0 :(得分:2)
这里没有mocha专家,但是应该存在看起来它只是证明从jquery选择器返回的结果存在,并且它们确实存在,它们只是空的。即使该示例无法正常工作,您也可以根据jquery选择器将任何内容放入其应存在的内容并返回传递。
it 'should work', ->
andThen ->
$c = $(App.rootElement)
$c.find('h1').length.should.equal(1)
it 'should fail', ->
andThen ->
$c = $(App.rootElement)
console.log($c.find('h3'));
$c.find('h3').length.should.equal(1)