我在这里有一些像这样的单页演示:http: //notjs.org/examples/forms/formmode_demo.html
我想,哇,如果可以在我现有的 mocha chai badness 设置中编写一些测试来直接测试示例,那就太棒了:
example = 'forms/formmode_demo.html'
describe "examples/#{example}", () ->
before (done) ->
loadExample example, () => done()
it 'should load in full input mode', () ->
window.$('input').length.should.equal 2
describe "in full input mode", () ->
it 'should have visible save', () ->
window.$('button.success').is(':visible').should.be.true
it 'should have visible cancel', () ->
window.$('button.cancel').is(':visible').should.be.true
it 'should not have put inputs on readonly class elements', ()->
window.$('.readonly input').length.should.equal 0
it 'should have input with author name', () ->
window.$("[data-not_attr='name'] input:text").val().should.equal window.dataObject.name
如果我能做到这一点,那么我将永远不会遭受那种“你的示例 x 几个月前停止工作”的尴尬时刻。
我让它工作,但只能使用来自 http:// urls 的页面中的脚本标签。如果我必须在测试之前将包部署到服务器,那么测试的效果就不那么好了。
示例页面加载 jquery、underscore 和 notjs 并且需要以作为独立演示运行。它还应该能够从本地文件系统运行,并且可以使用相对 url。我最初让页面上的 notjs 脚本标签指向一个相对路径,例如
<script src="../../notjs.basics.js"></script>
代替
<script src="http://notjs.org/notjs.basics.js"></script>
但是然后 notjs.basics.js 永远不会加载(window.Notjs == undefined 在测试中)并且我没有看到来自 jsdom 的任何错误。我尝试设置 documentRoot jsdom 选项,但这似乎不起作用。
作为参考,loadExample 方法和我的 jsdom 设置的其余部分在这里: https ://github.com/bee-hub/notjs/blob/master/test/testHelper.coffee
感谢您的任何帮助和建议。