リモートURLに対してローカルJavaScriptファイルをユニットテストするにはどうすればよいですか?私はこれを数日間はオン/オフしていますが、まだそれを理解することはできません。ユニットはリモートURLに対してローカルJavaScriptファイルをテストします
私は、このような含まれていapp.js
と呼ばれる一つとして、DOM操作で、ローカルファイルを持っている:
document.querySelector('p').textContent = 'This is a test.';
どのようにして正常コードすることを確実にするために、このようhttp://example.com/として、リモート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に持っていたことは、これまでのところです。 2番目のアサーションは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に対して、" 地球上で何を*のでしょうか? –
自分のコンピュータにないURLです(ローカルホストではありません)。 – Gary
http://jasmine.github.io/2.4/introduction.html –