У меня есть несколько одностраничных демонстраций, подобных этой: http://notjs.org/examples/forms/formmode_demo.html
Я подумал, вау, было бы супер здорово, если бы я мог написать несколько тестов в моей существующей настройке плохости мокко-чая, чтобы протестировать примеры напрямую, например так:
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 перестал работать несколько месяцев назад».
Я заставил его работать, но только с тегами script на странице, полученной с 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
Спасибо за любую помощь и предложения.