这听起来像是一个愚蠢的问题,但我想我会发帖...
我只是使用javascript和html创建一个简单的Web应用程序,并决定使用Knockout JS来管理UI的主要框架。但是我有点困惑如何继续。
我的第一页是一个非常简单的登录页面,它只有一个用户名和密码框,当我想用UI做事时就会出现问题。一个例子是在ui盒子里添加一个水印,或者在听取自定义事件时添加逻辑,我可以把它写成内联的javascript,但我当时无法对它进行单元测试。
最初我打算使用MVC样式模式,所以我可以使用模拟视图对控制器进行单元测试,并在其中放置任何ui逻辑。
那么有没有可以接受的方法来实现这一点而不将其全部作为页内逻辑?
答案 0 :(得分:0)
您可以使用两种方法。有一个xUnit package for JavaScript called JsUnit因此可以对基于JavaScript的UI逻辑进行单元测试。您提到的另一个路径是使用控制器将逻辑和JavaScript包含为“纯”视图模型。我个人觉得这两种方法都是可行的。您只是想确保基于JavaScript的视图模型不会与视图过于亲密。 :)
答案 1 :(得分:0)
mvvm的工作方式是视图应该是该视图模型的直观表示,因此将逻辑放在那里。如果你的设计正确,所以你的功能包含在单独的类中,那么你可以很容易地模拟它们。如果您习惯使用MVC,那么只需将viewmodel视为您的控制器。
我可以看到你的问题在哪里,因为复杂的视图你最终可能会在你的ViewModel类中发生很多事情,但如果你只是坚持简单的oo和封装原则你就不会走得太远错误...
无论如何总结一下,把它放在视图模型的逻辑中。