我是 Liferay 的新手。任何人都可以帮助指导我如何使用 liferay 进行测试驱动开发。
谁能提供指导如何使用 eclispe IDE 编写测试并执行它们以开发 portlet?
我是 Liferay 的新手。任何人都可以帮助指导我如何使用 liferay 进行测试驱动开发。
谁能提供指导如何使用 eclispe IDE 编写测试并执行它们以开发 portlet?
Portlet 本质上是以 UI 为中心的,并且您将遇到与几乎所有 UI 层代码相同的问题来开发它们以进行测试驱动。我个人更喜欢在开发 UI 时考虑到用户的接受度,让它尽可能的肤浅,并测试底层业务逻辑,将 UI 布线留给代码审查而不是自动化测试。
我知道这在测试覆盖率方面留下了一个漏洞,但我觉得大多数 UI 层测试都是 80% 的设置、5% 的实际断言(最大)和 15% 的拆解代码。恕我直言,这并不构成有价值的测试用例。
正如您特别询问测试驱动开发:请记住,TDD 主要是一种设计技术。由此产生的测试是非常受欢迎的附属品,但主要目的是设计被测软件。(与纸张设计或其他非 TDD 样式相比,TDD 软件本质上看起来不同)。当架构和设计的很大一部分由 UI 框架强加时,这不足以使用 TDD 进行“设计” - 所以我宁愿设计用户交互并使其引人注目(同时保持尽可能薄)
有了这个,你可以随意在你的 UI 上添加集成测试——通常你不会为此使用 JUnit,而且执行时间可能比你的单元测试长,但是在你的 UI 上进行这种类型的测试是非常值得的用户界面的顶部。只是不要期望从测试端设计它来深入了解您的 UI 层。将此保留用于您的业务层(以及您在 UI 层上使用的各种实用程序样式代码位),而不是用于将业务层纯粹连接到用户交互。
完全同意奥拉夫·科克的观点。
如果您喜欢 TDD,则可以使用这种方法设计业务层,而对于某些以 UI 为中心的组件(例如 portlet),最好在编写被测代码后使用传统的编写测试方法。例如,您可以使用 Selenium WebDriver 自动执行浏览器操作来测试 UI。