私は自分のプロジェクトでよく使用する一連のノックアウト バインディングを作成していますが、これは大きくなり、テストが必要です。だから私はQunitでそれをやってみました、heresは基本的なテストです
module("Message binding");
test("When updating message observable with a splash message ", function () {
var div = document.createElement("div");
var message = ko.observable();
ko.applyBindingsToNode(div, { message: message });
message({ splash: "Test" });
});
編集:誰かが不自由なコメントを追加する前に:DIはまだAssertがないことを知っています。バインディングがライブ環境のように動作するようになると、それが起こります
バインディングを適用すると、バインディングの update メソッドが null 値で起動されます (オブザーバブルに null 値があるため、これは正しいです)
しかし、メッセージオブザーバブルmessage({ splash: "Test" });を設定すると、update メソッドは再び起動しません。もちろん、init を呼び出して自分でメソッドを更新することもできますが、KO 監視可能 API を使用していないため、テストの生産性が少し低下します。