2011-02-16 54 views
1

我的春季web项目包括:我应该在Spring项目中包含系统测试吗?

  1. util classes;
  2. 知识库;
  3. 服务;
  4. 控制器。

测试如下:

  1. 单元测试util的类别;
  2. 使用HSQLDB的存储库的spring集成测试;
  3. 模拟存储库服务的单元测试;
  4. 模拟服务控制器的单元测试。

还有可能会有系统测试测试整个项目的功能。它可以使用像Selenium这样的外部工具来执行,也可以使用Spring集成测试来执行。

问题是,我应该在项目中包含这样的弹簧集成系统测试还是应该以某种方式分离?

我看到关于在项目中包含系统测试的两个问题: 1.他们需要配置调整,因为这些测试不会在生产配置下运行(例如,测试需要本地数据源,而不是JNDI中的数据源)。 2.他们不是自主的,他们需要一些外部资源等。我不能像往常一样运行单元测试。

如何组织您的系统测试?

回答

1

在小型项目中,我将它们放在同一个地方。在大型企业项目中(例如,您可能会有用地利用Spring),我们通常将系统测试组织在单独的软件包/项目中。这有助于使他们与主代码库分离。

如果你不这样做,就会有各种各样的诱惑来重用代码中的类来“帮助”某些应该更强调系统用户体验的用户(用户可能是另一个用户系统)。如果发生这种情况,最终会导致项目域类和UI之间的耦合,这将不可避免地影响到需要复制的大部分逻辑,这有助于保持它们在实际代码库中的分离。

大多数情况下,系统场景中的逻辑将主要集中在页面,屏幕,网络电话等等,因此重复使用来自主项目的代码是一个红鲱鱼。为了避免这种情况发生,请保持包装分开,因为一旦你避免发生这种情况,就不需要将它们放在同一个地方。

但是,请确保将系统测试检入到与代码相同的版本控制。

如果你还没有进行持续集成和测试/部署,那可能是另外一些学习会帮助你使用配置文件的领域。不幸的是,这个问题并没有因为你在一个单独的项目中进行测试而消失。

相关问题