问题标签 [model-view-controller]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
546 浏览

.net - 如何为使用 winforms 的控制器类编写单元测试?

有没有人能够成功地对必须耦合到 System.Windows.Forms.Form 类的方法进行单元测试?

我最近一直在开发 C# winforms 应用程序,尝试使用 MVC 结构构建它。这已经够难了,因为框架并没有真正考虑到这一点。

但是,当您将单元测试加入其中时,它会变得更加困难。我一直在确保我的控制器没有耦合到具体的视图类,以便我可以使用存根/模拟进行单元测试。但是在某处引用 Form 类是不可避免的,这些方法确实需要测试。

我一直在使用Moq,因为它有一些很好的类型安全特性,并且允许模拟具体类型。但不幸的是,它不允许我“期望”调用既不是虚拟也不是抽象的具体类型的方法或属性。而且由于 Form 类在构建时没有考虑到子类化,所以这是一个大问题。例如,我需要能够模拟 Form 类以防止创建真正的窗口,例如通过“预期”ShowDialog。

因此,我无法运行任何与 Form 的子类进行大量交互的单元测试,我的观点是。

有没有人成功地对这种类型的代码进行了单元测试?你是怎么做到的?

这是其他模拟框架可以解决的问题吗?其他模拟框架使用的基于字符串的方法是否会受到相同的约束?我可以编写自己的显式长手模拟类,还是缺少虚拟成员会阻止我也能够以这种方式抑制窗口行为?

或者是否有某种我没有想到的方法来构建我的类,以便表单耦合代码最终以简单复杂的方法和类结束,这样我就可以在不明确对它们进行单元测试的情况下逃脱,而不会被我的良心打败为了它?

0 投票
5 回答
6836 浏览

model-view-controller - MVC模型设计/继承

原谅这个模糊的标题,我不知道如何描述它。

如果您有一个通用模型“存档”,您如何根据用户选择的“类型”显示不同的视图/表单?

例如,用户创建一个新的“存档”,然后选择视频、书籍、音频等。从那里他们根据存档类型获得不同的形式。

还是将它们分成不同的模型会更好——视频、书籍、音频?

或者模型可以继承(如视频扩展存档)。我想这是基本的 OOP / 类,但不知道如何在这里应用它。

欢迎来自任何 MVC 框架的示例!

0 投票
13 回答
46722 浏览

model-view-controller - 什么是 MVC(模型视图控制器)?

我最近听说过 MVC(模型视图控制器)这个词被大量的嗡嗡声所折腾,但它到底是什么?

0 投票
2 回答
370 浏览

model-view-controller - 花哨的 MVC URL 会影响缓存的完成方式吗?

在阅读有关清除 JS 文件缓存的问题的一些答案时,有人指出了http 规范的这一部分。它基本上说 URLS 包含一个?除非给出特定的到期日期,否则不应从缓存中提取。在 MVC 网站(RoR、ASP.Net MVC 等)中很常见的不存在查询字符串的 URL 如何被缓存,并且与更传统的基于查询字符串的 url 的行为有何不同?

0 投票
5 回答
719 浏览

java - JSP 应用程序中的不同布局和 i18n

我在 Tomcat 中有一堆 JSP 文件和后端。我有 3 个不同版本的 JSP,内部逻辑相同,但布局不同。所以如果我改变一些逻辑,我需要修复三个 JSP 文件。

这种情况的正确解决方案是什么?我想到了一些 XML 和 XSLT 堆栈:后端只提供 XML 格式的数据,而且对于每个布局,我都有 XSLT 可以发挥一些作用。

试想一下,您需要在 JSP 中提供各种语言的 stackoverflow。逻辑相同,但布局不同。

你能给我指出一些方向吗?

0 投票
3 回答
4263 浏览

model-view-controller - 如何让选择模型与代理模型一起使用?

我有一个模型和两个视图,如下所示:

当用户在其中一个视图中选择某些内容时,我希望另一个视图反映该选择。所以我想我会使用 QSelectionModel 将它们链接在一起。但这不起作用。我有一种感觉,这是因为视图认为它们有两个不同的模型,而实际上它们具有相同的模型。有没有办法让它工作?

0 投票
5 回答
1991 浏览

php - MVC,课程去哪儿了?

我对 MVC 的理解如下(以防它非常错误,我毕竟是新手)

  1. 模型是与数据库交互的东西
  2. 视图是页面的设计/布局
  3. 控制器是一切开始的地方,本质上是页面逻辑

我正在使用CodeIgniter,但我会冒险猜测它不仅限于此,甚至可能仅限于 PHP 框架。

我在哪里放置全球课程?

我可能有一个 Products 模型,然后我运行一个从数据库中收集 20 个产品的查询。我现在是制作 20 个模型还是应该有一个单独的类,如果是后者,我应该把这个类放在哪里(其他控制器也需要使用它)

0 投票
1 回答
1419 浏览

model-view-controller - MVC-ARS 是否比经典 MVC 更可取以防止过载?

流行的设计模式 MVC(模型/视图/控制器)有一个扩展的表亲 MVC-ARS(动作/表示/状态)。添加的组件都存在于数据库层中,虽然不是模型的一部分,但它们被它调用。详情如下:

  1. 状态,就像在状态机中一样。这遵循经典的状态机模式。存在与导致继续或停止条件以及可能状态更改的事件匹配的当前状态。

  2. 行动,就像所有信息技术系统的目标一样,对数据采取行动。这意味着我们的事务,即数据库中数据的 CRUD(创建/读取/更新/删除)。这可能已被状态机阻止。

  3. 表示,例如我们发回的将成为模型的数据。数据模型和 MVC 模型可能非常不同,例如关系与 XML 层次结构。如果它是明确的和被理解的,那没有错。这就是代表。

这个扩展不是通过分离状态控制、事务控制和数据快照来防止模型或控制器的过载吗?

0 投票
1 回答
271 浏览

asp.net-mvc - MVC n级路由构建

我想创建一个包含 N 级类别的产品目录

例如

这是可能的,如果是的话,怎么办?

0 投票
8 回答
56962 浏览

model-view-controller - MVC 的替代方案

模型视图控制器的替代“设计方法”是什么?MVC 似乎很流行(SO 是用它构建的,我知道很多)但它是唯一使用的方法吗?