【问题标题】:server-side test cases while gwt dev mode is runninggwt 开发模式运行时的服务器端测试用例
【发布时间】:2012-09-08 05:00:36
【问题描述】:

所以我有这个(有点)奇怪的想法 - 正在开发的系统通过各种服务与外部世界通信,但它完全是服务器端的,并且被部署为单一战争。我想为它编写一个基本的 UI(开发/调试级,不用于生产)。主要目标:

  • 避免调用系统服务,而是直接在 java 对象上调用方法
  • 使用 GWT
  • 必须在测试用例 (testng) 和对 tomcat 的部署战争中工作(最好在开发和生产 gwt 模式下)
  • 保持独立,限制对系统的更改

那么...如何用 gwt 做到这一点? 在部署到 tomcat 时,我会将两者都投入到同一场战争中。 (因为不同的战争有不同的类加载器)。 运行测试用例(集成,它们使用 db 和所有东西)时,我会在初始化期间启动嵌入式码头并注册新的 gwt servlet。

好的,这听起来可行。但是开发模式呢?我希望能够启动常规开发模式,这将允许

  • 修改 UI 代码(显然可以),并且
  • 修改服务器端代码(我通常会使用 jrebel 来实现) - 但是在这种情况下如何运行测试用例?我肯定不会重写它们。

放弃在同一个 jvm 中运行 UI 和系统的想法会有所帮助并且可以很好地分离,但也会迫使我编写一些毫无意义的 RPC/RMI/东西。

关于如何解决这个问题的任何见解?

顺便说一句 - 这只是一个下班后的项目,因此欢迎疯狂的我永远不会在真实系统中这样做的想法。

【问题讨论】:

    标签: java unit-testing gwt tomcat war


    【解决方案1】:

    在单独的 JVM 中运行后端(Tomcat、Jetty 等)和前端(GWT 开发模式)可以正常工作。这实际上或多或少是推荐的方法(特别是如果您想在某些时候使用 SuperDevMode)。

    这是我使用eclipse的开发策略:

    1. 在调试模式下使用 WTP 和 Jetty 启动后端服务器(当我在后端更改某些内容时,JRebel 用于热交换类)。
    2. 启动 GWT 开发模式
    3. 在浏览器中打开 GWT 应用

    这样,当我在 GWT 部分中更改某些内容时,我只需刷新浏览器即可看到 UI 中的更改。
    JRebel 负责后端部分的所有更改。

    前端和后端之间的通信方式与在生产模式下的方式相同(RequestFactoryRPCRequestBuilder)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-12-27
      • 2017-10-12
      • 1970-01-01
      • 2019-01-05
      • 1970-01-01
      相关资源
      最近更新 更多