Javascript knockoutjs:为viewModel编写单元测试

Javascript knockoutjs:为viewModel编写单元测试,javascript,unit-testing,knockout.js,Javascript,Unit Testing,Knockout.js,我有一个ViewModel,它有一个单击即可执行某些操作的函数 function viewModel() { var.self = this; self.printFoo = function() { console.log(this); .... } self.fooArray = ko.observableArray( [ "foo", "bar" ]); } 函数viewModel(){ var.self=这个; self.p

我有一个ViewModel,它有一个单击即可执行某些操作的函数

function viewModel() { var.self = this; self.printFoo = function() { console.log(this); .... } self.fooArray = ko.observableArray( [ "foo", "bar" ]); } 函数viewModel(){ var.self=这个; self.printFoo=函数(){ console.log(this); .... } self.fooArray=ko.observearray([“foo”,“bar]”); } HTML有一个
foreach:fooArray
,每个元素都有一个
click:printFoo
绑定来调用函数

我如何为
printFoo
编写一个具有合理值的测试用例


我想我必须以某种方式提取ViewModel。有什么想法吗

模拟viewmodel?那么就没有什么可测试的了。您应该模拟的都是外部依赖项,如服务调用等,并测试viewmodel函数。不,我想测试printFoo是否做了正确的事情。所以,模仿printfoo的调用者我同意@Anders的说法,你到底想实现什么?如果您想确保
this
就是您想要的
this
,您必须用DOM构建第二个应用程序,并断言
this
确实是来自DOM的
this
,但您在什么时候停止?您如何知道测试DOM将正常工作?Viewmodel测试比完整的DOM测试稳定得多,所以没有什么问题。要测试Foo函数,只需执行并断言它?使用qunit或jasmine etcAh,如果您只想测试时钟注意,那么您需要使用DOM进行测试,但是如果您要求我,那么测试没有意义