dojo/doh 単体テストがたくさんあるので、intern/chai に移行したいと考えています。私を助けることができる移行ガイドまたはおそらくコンバーターはありますか?
ありがとう
テストを DOH から Intern に自動的に移行するためのコンバーターはありませんが、これを作成することに興味がある場合は、新しい拡張チケットを開いてください。
移行ガイドもありませんが、ほぼすべてのケースでパスはかなり単純です。
doh.t(value, message)
→ assert.isTrue(value, message)
doh.f(value, message)
→ assert.isFalse(value, message)
doh.e(ErrorType, context, fnName, args, message)
→ assert.throws(lang.hitch(context, fnName, arg1, argN), ErrorType, regExp, message)
doh.is(expected, actual, message)
→ assert.deepEqual(actual, expected, message)
doh.isNot(expected, actual, message)
→assert.notDeepEqual(actual, expected, message)
(Chai にはDOH よりも多くのアサーション タイプがあります)
new doh.Deferred
→ this.async(timeout)
(テスト関数内から)
doh.Deferred#getTestErrback(callback)
→ InternDeferred#rejectOnError(callback)
doh.Deferred#getTestCallback(callback)
→InternDeferred#callback(callback)
doh.registerTestType
→ 新しいテスト インターフェイス ( tdd
、bdd
など) を作成し、スイートからアクセスします。
doh.register
→ tdd、bdd、またはオブジェクト インターフェイスを使用して、スイートとテストを登録します。理論的には、をエミュレートする新しいテスト インターフェイスを作成できますdoh.register
。
doh.register
私がこれまでに使用した中で本当に最悪の API です。ほぼすべての単一の引数は複数の異なるものを受け入れることができるため、これらのテストのほとんどの移行パスを明確に説明することは非常に困難です. のような一部のシグネチャは、{ runTest, setUp, tearDown }
直接の類推を持っていません。なぜなら、Intern では、セットアップと破棄の関数は (正しく) テストごとではなくスイートごとであるためです。
これらの例はすべて、それがモジュールregisterSuite
の識別子であると想定していintern!object
ます。
doh.register(groupId, [
function testA() {},
function testB() {}
], setupFn, teardownFn);
になる
registerSuite({
name: groupId,
setup: setupFn,
teardown: teardownFn,
testA: function () {},
testB: function () {}
});
doh.register(groupId, function testFn() {});
になる
registerSuite({ name: groupId, testFn: function () {} });
doh.register(groupId, {
setUp: setupFn,
tearDown: teardownFn,
runTest: testFn,
name: 'myTest'
});
Intern モデルにきれいにマッピングされないため、意図に応じていくつかの異なるものの 1 つになります。
サブスイートとして:
registerSuite({
name: groupId,
myTest: {
setup: setupFn,
teardown: teardownFn,
'': testFn
}
});
テストとして:
registerSuite({
name: groupId,
myTest: function () {
setupFn();
try {
testFn();
}
finally {
teardownFn();
}
}
});
他のオプションもあるかもしれません。
doh.runGroup
→suites
引数を使用して特定のスイートを実行する
doh.togglePaused
→this.async()
テスト内からフローを制御するために使用する
doh.pause
→テスト内からフローを制御するために使用する →this.async()
テスト内からフローを制御するために使用する
doh.run
this.async()
明らかに、Intern には DOH からの多くの追加機能と、他のほとんどのテスト環境に一致する異なる概念モデルがあるため、慣れればより強力で使いやすくなるはずです。