我如何UnitTest我的网站?

时间:2013-01-30 16:12:51

标签: c# unit-testing web visual-studio-2012

很抱歉问这么简单的问题。我是新手。 我正在建立我的网站。我尝试为它创建一个UnitTest项目,但我根本无法为它创建一个引用。即使我已经为我的类方法创建了一个命名空间,Visual Studio也不允许我使用该方法并查看命名空间。 UnitTesting网站与UnitTesting正常程序完全不同吗? 在线提供任何参考? 谢谢

4 个答案:

答案 0 :(得分:2)

您可能需要考虑在Visual Studio 2012中使用新的Fakes支持。简而言之,您可以绕过对网站API的调用,并将呼叫路由到您提供的代理。这允许您以模块化的方式隔离测试代码。

您可以在http://msdn.microsoft.com/en-us/library/hh549175.aspx

找到更多详情

此致

Patrick Tseng

Visual Studio ALM团队。

答案 1 :(得分:1)

使用this文章。如果你是用户mvc使用this问题。这个stie

你可能听过这句古老的格言,“更好,更快,更便宜,挑选任何两个。”如果你想要一些好的和快速的东西,它不会便宜,如果你想要快速和便宜的东西,它不会很好。更便宜,更快,更好意味着我们需要更快地编写更多代码,对吧?像那么简单就好了。学习更快地输入可能满足两个要求,但它不会使你开发的软件更好。那么我们如何让软件更好? “更好”是什么意思?

“更好”意味着生成具有少量缺陷的灵活,可维护的软件;更好的软件就是长期可维护性。为实现这一目标,关键的设计决策是确保组件松散耦合。松散耦合的软件有许多好处。一个突出的是它提高了我们测试解决方案的能力。如果我们编写可以轻松分解成小部分的软件,则测试变得更容易。当你用这种方式说出来时听起来很简单,但是今天使用的难以测试或维护的软件数量表明它并不像我们想象的那么简单。软件需要耦合以做任何有用的事情,但开发人员需要工具和技术来减少耦合,以便更容易测试解决方案。

答案 2 :(得分:1)

我假设您的网站代码在一个项目中,并且您的单元测试代码在同一解决方案中的另一个项目中?为了使一个项目中的代码能够访问另一个项目的代码,您必须添加对另一个项目的引用:

  1. 右键单击单元测试项目,然后单击“添加引用...”
  2. 打开“项目”标签,选择网站项目,然后点击“确定”。

答案 3 :(得分:0)

您不应该对您的网站进行单元测试。您应该对业务层代码进行单元测试。测试您的网站可能是UI测试,您可以使用像Selenium这样的工具。我建议阅读单元测试和单元测试框架(MSTest,NUnit等)。您应该对应用程序进行分层,以便可以绝对隔离地测试类,对象,数据访问等。

示例:

Manage Users页面可能会向管理员显示所有用户的列表,并按过滤条件进行过滤。

页面应该只处理问题的UI方面,因为它应该只关心显示数据。它应该向另一个对象发送请求以获取用户列表。也许像UserRepository这样的方法有一个名为GetUsers的方法,它接受过滤条件。

这是单元测试的用武之地。您可以测试(通过模拟,或许)当给出数据库中非常具体的用户列表时,以及某个过滤条件,{{ 1}}方法返回您期望的用户列表。