gpt4 book ai didi

unit-testing - 单元测试和 Web 应用程序 - 资源

转载 作者:行者123 更新时间:2023-11-28 21:06:31 26 4
gpt4 key购买 nike

在 J2EE 网络应用程序中,人们如何管理资源以使其对网络上下文和单元/集成测试都可见?

我发现您通常会在开发过程中以某种方式配置源/资源文件夹(即 Maven 所期望的方式),因此您的单元测试将在您的 IDE 中运行。但是一旦构建了 Web 应用程序并将其打包到 WAR 文件中(即,当您的持续集成服务器完成构建时),您的单元测试将不再运行,因为资源位于其他地方。

您是否最终将资源保存在两个不同的地方并手动使它们保持同步?

最佳答案

我们曾尝试在容器中使用单元测试,但几年前就放弃了。最好(至少对我们来说)让每个单元测试只覆盖一个类而不是其他类,模拟出对其他类的依赖性(参见 JMock 或其许多竞争对手)。一个好的基本规则是,如果它涉及数据库、网络或文件系统,则它不是单元测试。 (它可能对其他东西有用,但它不是单元测试。有关更多信息,请参阅 these unit testing rules。)

以这种方式编写的单元测试可以在任何地方运行,而且速度非常快(我们有数千个,在中等规范的硬件上运行它们只需不到 60 秒。)

您可能还想运行集成测试来检查子系统或整个应用程序。我们发现子系统测试也可以在其边界使用模拟 - 例如,我们伪造外部定价提要 - 并且端到端测试最适合使用 Selenium 等工具。或 WebDriver ,它让您可以将整个应用程序部署在服务器上,然后像用户一样使用浏览器访问它。

(顺便说一句,我们的单元测试方法使我们成为模仿者,而不是经典主义者,在Martin Fowler's taxonomy 中。)

关于unit-testing - 单元测试和 Web 应用程序 - 资源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/448231/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com