私は自分のjsコードの単体テストを書き始めており、これは初心者です。knockout.jsを使用しており、プロジェクトのビューモデルをテストする必要があります。
サンプルは次のとおりです。
Tasks.jsファイル
var yc = yc || {};
yc.TasksVM = function (options) {
_addTask = function () {
yc.AddTask.openDialog();
},
_paging = myc.PagingVM();
_instance = {
addTask: _addTask,
paging: _paging,
};
return _instance;
}
およびAddTask.jsファイル
var yc = yc || {};
yc.AddTaskVM = function (options) {
var
_openDialog = function (orderId) {
$.ajax({
data: data, type: 'get', url: dialogUrl,
success: function (dialogContent) {
// ...
}
});
};
_instance = {
openDialog: _openDialog
};
return _instance;
}
Jasmineを使用してTasksVMをテストしようとすると、を呼び出すためにインスタンス化 する必要があるという問題が発生します。また、電話を受けるには、このファイルをタグに含める必要があります。次に、呼び出しをモックする必要があり ます(また、htmlにjQueryを含めます)。yc.AddTask.openDialog()
openDialog()
<script>
yc.AddTask.openDialog
$.ajax
私の質問は結合についてです。
1.yc.AddTask.<my_function>
中から電話しても大丈夫yc.TasksVM
ですか?
.NETの世界から、このインターフェースを介して処理します。すべての外部依存関係を取り除き、ソースコードのインターフェイスのみを使用します。したがって、テストしているコード内のあらゆるものをモックすることができます。
2.これらすべての依存ファイルをhtmlファイルランナーに含める必要がありますか?