로컬 JavaScript 파일을 원격 URL과 어떻게 테스트 할 수 있습니까? 나는 이것을 며칠 동안 켜고 껐다. 그러나 아직 그것을 이해할 수는 없다. 성공적으로 코드를 확인하기 위해유닛이 원격 URL에 대한 로컬 JavaScript 파일을 테스트합니다.
document.querySelector('p').textContent = 'This is a test.';
을 나는 다음과 같은 http://example.com/ 등의 원격 URL에 대해이 테스트 할 수 있습니다 방법 :
나는 등 포함app.js
라는 하나로서, DOM 조작과 로컬 파일을 가지고 실행됩니까? URL은 내가 제어하는 URL이 아닙니다. 아마도 Selenium을 포함하는 솔루션이 가장 적합 할 것이지만 원격 URL에 대해 내 로컬 JS 파일을 실행하는 방법을 잘 모르겠습니다. 이러한이 의사 코드와 같은
:
openUrl('http://example.com/', function() {
inject('./app.js');
element = document.querySelector('p');
assertEquals('This is a test.', element.textContent);
});
내가 캐스퍼 JS를 사용하여 시도 (팬텀 JS의 기반으로) 그게 가장 유망한 이었지만, 전에로드를 완료 할 수있는 DOM 기다리지 않습니다 어설 션을 실행하기 때문에 jQuery $ (document) .ready() 블록 안에있는 것은 아직 실행되지 않습니다.
여기 캐스퍼 JS에서 얻은 내용이 있습니다. ready() 블록에서 실행되기 때문에 두 번째 어설 션이 실패합니다.
// app.js
$ = require('jquery');
$('p').first().text('test');
$(document).ready(function() {
$('h1').text('one');
});
그리고 : 만약 당신이 좋아하면
// test.js
var url = 'http://example.com/';
var script = 'Example/app.js';
casper.test.begin('Test', function suite(test) {
casper.start(url, function() {
casper.page.injectJs(script);
// 'test' was added immediately, in app.js. This succeeds.
test.assertTextExists('test');
// 'one' runs in a $(document).ready() block. This assertion fails.
test.assertTextExists('one');
});
casper.run(function() {
test.done();
});
});
도대체 것은하지 *로 실행? –
로컬 호스트가 아닌 내 컴퓨터에있는 URL. – Gary
http://jasmine.github.io/2.4/introduction.html –