2010-02-05 67 views
3

测试我有一个设置了若干层:单元测试 - 隔离

  • 网站
  • 应用程序/服务
  • 域(含单位)
  • 持久性(包含库)

我正在测试持久层隔离确定使用从存根对象创建的内存中的数据。

现在,我想测试我的网站层。我知道我应该单独测试它,我认为意味着为它使用的应用层对象创建一个存根,但是这个存根将需要它自己的一组内存数据,在持久层的存根中复制,我不想做复制并管理它。

所以我的问题是,被测主题是否应该总是与来自下面图层的存根对象一起工作,以便被隔离,并且他们通常拥有自己的一组数据?或者,我的web方法在测试中调用应用层中的一个轻量级对象,并使用存根数据调用持久层?

感谢您的帮助。这感觉就像对我来说最后一个难题......

回答

5

理想情况下,在单元测试中,每个被测主题都与其依赖关系隔离。您不希望您的受测试对象因为其依赖关系中断而导致测试对象失败而中断测试对象。如果你这样测试,你可能会花很多时间在错误的地方追踪错误。

测试事情如何一起工作是集成测试,而不是单元测试

+0

谢谢。我真的需要再次提醒这一次,以便习惯于这种工作方式。认为我现在明白了 – 2010-02-05 05:13:24

1

的域名或者是在测试我的Web方法调用中与存根调用持久层应用层的轻量级对象确定数据?

如果你这样做,我不会再单独调用测试单元测试 - 如果测试失败,错误在哪里? - 但是一个综合测试。不要误解我,集成测试也不错,它只是另一个目的。但是,如果你的目标是单独测试网站层,你应该模拟/存根直接依赖。

0

设置测试数据可能是一件单调乏味的工作。如果您正在使用DotNet,则可以使用名为NBuilder的库非常简单快速地生成测试数据。它支持流畅的界面。你可以阅读更多关于它here