2

我是 Liferay 的新手。任何人都可以帮助指导我如何使用 liferay 进行测试驱动开发。

谁能提供指导如何使用 eclispe IDE 编写测试并执行它们以开发 portlet?

4

2 回答 2

1

Portlet 本质上是以 UI 为中心的,并且您将遇到与几乎所有 UI 层代码相同的问题来开发它们以进行测试驱动。我个人更喜欢在开发 UI 时考虑到用户的接受度,让它尽可能的肤浅,并测试底层业务逻辑,将 UI 布线留给代码审查而不是自动化测试。

我知道这在测试覆盖率方面留下了一个漏洞,但我觉得大多数 UI 层测试都是 80% 的设置、5% 的实际断言(最大)和 15% 的拆解代码。恕我直言,这并不构成有价值的测试用例。

正如您特别询问测试驱动开发:请记住,TDD 主要是一种设计技术。由此产生的测试是非常受欢迎的附属品,但主要目的是设计被测软件。(与纸张设计或其他非 TDD 样式相比,TDD 软件本质上看起来不同)。当架构和设计的很大一部分由 UI 框架强加时,这不足以使用 TDD 进行“设计” - 所以我宁愿设计用户交互并使其引人注目(同时保持尽可能薄)

有了这个,你可以随意在你的 UI 上添加集成测试——通常你不会为此使用 JUnit,而且执行时间可能比你的单元测试长,但是在你的 UI 上进行这种类型的测试是非常值得的用户界面的顶部。只是不要期望从测试端设计它来深入了解您的 UI 层。将此保留用于您的业务层(以及您在 UI 层上使用的各种实用程序样式代码位),而不是用于将业务层纯粹连接到用户交互。

于 2013-02-26T08:33:03.133 回答
0

完全同意奥拉夫·科克的观点。

如果您喜欢 TDD,则可以使用这种方法设计业务层,而对于某些以 UI 为中心的组件(例如 portlet),最好在编写被测代码后使用传统的编写测试方法。例如,您可以使用 Selenium WebDriver 自动执行浏览器操作来测试 UI。

于 2013-04-16T10:07:46.830 回答