2011-01-24 37 views
0

我有一个返回的产品改变了历史一个Web服务方法,它的签名是这样的:如何避免整合BusinessLogic重复测试

List<MyProduct> GetProductHistory(int iProductId); 

我想创建此方法的集成测试。为此,我需要在数据库中创建一些数据。在这里,我可以创建一个函数,在DB中编写一些“硬编码”记录,以模拟产品变更历史记录。

我还需要测试其他功能(INT GetProductAverageValue(INT iProductId)),它应该使用的产品历史信息做一些数据处理。为了测试这个功能,我需要几组记录(几种不同的历史类型)。在这里我有几个选择:

  1. 创建几个不同的硬编码数据集(每个测试用例)(这里有很多数据,所以这些集有点可怕);
  2. 创建一些功能在我的集成测试,这将创造产品所需的历史...

第一种选择是可怕的巨大,2日 - 导致业务逻辑的重复集成测试层上...

请指教。有什么想法,欢迎...

回答

0

这是我今天第二个问题...我在其中找到自己的解决方案时完成的问题写作。

打造“集佳产品的改变历史”,我需要使用服务的方法,实际上改变的产品。简单,快捷:)

附:无论如何,欢迎任何意见和建议。

2

有很多数据存在的,所以这些集是可怕的

一点我不太明白,难的是在这里。也许你可以澄清为什么这是可怕的?

当需要测试一些代码,测试用例的数量完全过大(这是总是真正的程序的情况下),使用equivalence partitioning选择的测试案例,但彻底测试的代码数量较少。

您已明确表示,这是集成测试。你已经有了彻底的单元测试吗?如果不是,请先创建这些。然后集成测试不再需要测试业务逻辑;他们只需要测试组件是否被正确粘在一起。这不应该需要大量的测试用例。如果是,请考虑重新设计代码以引入中间级别的程序集(一个facade),您可以在没有数据库的情况下进行测试。

+0

在“集成测试”我的意思是测试做不仅相互关联组件的整体服务的测试。例如,它应该'登录','CreateProduct','检查数据库是否真的存在'。或者另一种情况:'Login','DeleteProduct','检查数据库是否真的被删除。可能更好的名字是功能自动化测试? – Budda 2011-01-25 15:08:51