手動で作成できない戻り値 (値) を返す関数をチェックする必要がある場合、単体テストでこの奇妙な状況が発生します。実際、この関数はこの値を作成するために作成されています。したがって、次のようにテストします (javascript および QUnit フレームワーク):
asyncTest("UTF-8 - ArrayBuffer conversion", 1, function() {
var arrayBuffer;
var testUtf8 = "łużyński";
var blob = new Blob([testUtf8]);
var f = new FileReader();
f.onload = function(e) {
arrayBuffer = e.target.result;
start();
};
equal(utf8ToArrayBuffer(testUtf8), arrayBuffer, "UTF-8 to ArrayBuffer, OK!");
});
戻り値と比較するために arrayBuffer 変数を準備することは、実際には を使用することと同じであるため、冗長ですutf8ToArrayBuffer(testUtf8)
。したがって、テストは次のようになります。
equal(utf8ToArrayBuffer(testUtf8), utf8ToArrayBuffer(testUtf8), "UTF-8 to ArrayBuffer, OK!");
このようなことをテストするべきですか、それともそのままにしておくべきですか? それとも、これに対する別のアプローチがありますか?