MVP vs MVP2 - 在JVM中运行测试的最佳实践

时间:2012-02-27 14:30:46

标签: gwt testing mvp

在MVP中,View为小部件的接口提供了getter方法 - 比如hasClickHandler aso。 - 以便演示者可以访问这些ClickHandler以添加侦听器和设置值。

这使得视图真的很愚蠢。

如果要测试mvp演示者,则必须模拟视图,并且必须为按钮创建模拟以模拟按钮上的单击。

另一方面,在MVP2中,视图知道演示者,演示者提供类似onButtonClick的方法,视图添加了ui处理程序。这使得视图了解演示者,但我认为这更容易测试。

那么MVP和MVP2的优点和缺点是什么?

是否可以为每个小部件编写模拟以创建良好的视图模拟?

与MVC相关的MVP的一个好处是,你知道什么是Presenter,View和Model。如果MVP2像MVP那样清楚,那我就不太可能了。

你的经历是什么?

1 个答案:

答案 0 :(得分:2)

我使用了两种方法,我认为使用MVP2模式有两个优点(通过演示者界面在演示者中查看调用方法):

  • 您不必在演示者中为视图的所有HasXXXHandler方法创建这么多内部(匿名)回调。
  • 编写单元测试更容易,因为您不必为所有HasXXXHandler接口创建模拟,而使用BDD,您只需要测试是否调用了演示者的接口函数。

MVP也只是一种模式,与任何其他设计模式一样,它只是一个指南。为了坚持最纯粹的实施,没有必要让你的生活更加艰难。