不好意思问这么简单的问题。我是新手。我正在建立我的网站。我尝试为它创建一个 UnitTest 项目,但我不能不为它创建一个引用。即使我为我的类方法创建了命名空间,Visual Studio 也不允许我使用该方法并查看命名空间。UnitTesting 网站与 UnitTesting 普通程序完全不同吗?网上有什么参考资料吗?谢谢
4 回答
您可能需要考虑在 Visual Studio 2012 中使用新的 Fakes 支持。简而言之,您可以绕过对网站 API 的调用,并让调用路由到您提供的委托。这允许您以模块化的方式隔离测试您的代码。
您可以在http://msdn.microsoft.com/en-us/library/hh549175.aspx找到更多详细信息
问候,
帕特里克·曾
Visual Studio ALM 团队。
使用这篇文章。如果你是 mvc 用户,请使用这个问题。还有这个 stie
您可能听说过一句古老的格言:“更好、更快、更便宜,选择任意两个。” 如果你想要一些又好又快的东西,它就不会便宜,如果你想要一些又快又便宜的东西,它就不会很好。更便宜、更快、更好意味着我们需要更快地编写更多代码,对吧?像那么简单就好了。学习打字更快可能会满足其中两个要求,但它不会使您开发的软件变得更好。那么我们如何让软件变得更好呢?“更好”是什么意思?
“更好”意味着生产出具有较少缺陷的灵活、可维护的软件;更好的软件是关于长期可维护性的。为了实现这一点,一个关键的设计决策是确保组件松散耦合。松耦合软件有很多好处。一个突出的是它提高了我们测试解决方案的能力。如果我们编写的软件可以很容易地分解成小部分,那么测试就会变得更容易。这么说听起来很简单,但今天使用的软件数量难以测试或维护表明它并不像我们想的那么简单。软件需要耦合才能做任何有用的事情,但开发人员需要工具和技术来减少耦合,以便解决方案更容易测试。
我假设您的网站代码在一个项目中,而您的单元测试代码在同一解决方案的另一个项目中?为了让一个项目中的代码访问另一个项目的代码,您必须添加对另一个项目的引用:
- 右键单击单元测试项目,然后单击“添加引用...”
- 打开“项目”选项卡,选择网站项目并单击“确定”。
您不应该对您的网站进行单元测试。您应该对业务层代码进行单元测试。测试您的网站可能是 UI 测试,您可以使用 Selenium 之类的工具。我建议阅读单元测试和单元测试框架(MSTest、NUnit 等)。你应该对你的应用程序进行分层,这样你就可以在绝对隔离的情况下测试你的类、对象、数据访问等。
例子:
一个Manage Users
页面可以向管理员显示所有用户的列表,这些用户按过滤条件进行过滤。
页面应该只处理 UI 方面的问题,例如,它应该只关心显示数据。它应该向另一个对象发送请求以获取用户列表。也许像 aUserRepository
这样的东西有一个名为的方法GetUsers
,它接受一个过滤条件。
这就是单元测试的用武之地。您将测试(也许通过模拟)当给定数据库中非常具体的用户列表和特定过滤条件时,该GetUsers
方法返回您期望的用户列表。