【问题标题】:Unit test with accessors使用访问器进行单元测试
【发布时间】:2009-09-24 15:23:31
【问题描述】:

这是一个两部分的问题。

背景:我们将 C# 应用程序从 VS2005 移至 VS2008,并在此过程中将应用程序从 .net 2.0 移至 .net 3.5。除了单元测试之外,过渡进展顺利。

首先:单元测试框架是基于 Visual Studios 还是 .NET?

第二:这个问题源于我们在单元测试中遇到的问题。我们有内部类需要访问器才能对它们进行单元测试。当应用程序在 VS2005 中时,所有访问器都是通过右键单击所需的类并选择“创建私有访问器”来自动创建的——这个访问器被放置在 VSCodeGenAccessors.cs 中。现在在迁移到 VS2008 和 .net 3.5 之后,访问器被放置在新创建的文件夹“测试引用”中,并且为每个访问器创建一个文件 (.accessor)

为了保持一致性,我如何将访问器生成到 VSCodeGenAccessors.cs 中。

谢谢!

【问题讨论】:

  • 我假设您使用的是 MSTest。您可能会考虑迁移到 NUnit - 这将使您远离 Visual Studio 版本问题。
  • 理想地迁移到 NUnit 是我们未来的目标之一。目前,我更愿意与已经完成的工作保持一致。

标签: visual-studio-2008 unit-testing testing accessor


【解决方案1】:

为了回答您的第一个问题,单元测试框架是某些版本的 Visual Studio 的一部分。事务:

  • Visual Studio 2005 团队系统
  • Visual Studio 2008 团队系统
  • Visual Studio 2008 专业版

关于您的第二个问题,我恐怕帮不上什么忙 - 我认为对内部进行单元测试是最糟糕的做法,因此我没有使用 Private Accessors 的经验。

【讨论】:

  • 马克,为什么你认为内部单元测试是最糟糕的做法?
  • 单元测试套件最重要的方面是充当回归测试套件,在重构代码时充当安全网。内部代码不是 API 的一部分,因此通过直接测试内部代码,您会不必要地限制自己,因为每次更改内部方法都会破坏测试。这是一个古老的单元测试辩论。请注意,我并不是说内部代码不应该被测试覆盖,而是应该通过公共 API 进行覆盖。
猜你喜欢
  • 2011-02-16
  • 2023-03-26
  • 1970-01-01
  • 2011-07-17
  • 1970-01-01
  • 1970-01-01
  • 2011-06-26
  • 2023-03-11
  • 2011-11-16
相关资源
最近更新 更多