我觉得我被困在了这场政治/宗教斗争中。从我所做的研究中,我发现许多人强烈认为UI测试通过单元测试是愚蠢的,而由实际的人来做要好得多。我同意。
然而,上级似乎已经告诉我要对UI进行单元测试。(这已经很奇怪了,因为他们之前告诉我,我只需要写一个测试计划,而不是实际的测试)。老实说,我对单元测试不是很熟悉。我正在尝试使用MOQ,但我找到的所有教程都使用存储库,而不是服务,而且我正在围绕服务构建我的web应用程序。
以下是一个服务(的一部分)的示例:
public class ProductService : Service<Product, EntitiesDbContext>
{
...
public Product GetProduct(int id)
{
return All().FirstOrDefault(p => p.ProductId == id);
}
...
}我的假设是,我需要使用Moq创建一个新产品,然后有人使用我的模型验证硬编码的输入。我不知道该怎么做。
测试UI是我的大部分工作,因为网站在很大程度上依赖于用户通过表单输入。同样,我发现使用单元测试进行测试是非常愚蠢的,因为我的模型非常严格,并且只允许某些输入。
我的问题是:如何使用MOQ或其他测试框架测试表单输入?我听说有一些程序可以跟踪你的行为,然后复制它们,但我一直没有成功地找到它们,我也相信这样的技术需要花钱。
发布于 2012-05-04 00:32:34
尝试使用Selenium或Watin进行UI测试。
发布于 2012-05-04 00:34:11
Visual Studio2010旗舰版有一个叫做Coded UI test的东西。基本上,您在Internet Explorer中记录您的操作,这些操作将转换为C#代码,您可以在其中添加断言,然后在不同的浏览器中重放这些操作。
然而,在数据库支持的web应用程序上进行测试是非常困难的,因为您很难找出哪一行是新添加的行。为了简化问题,您可能希望设置一个示例数据库,在按顺序运行测试套件之前,该数据库将被重置为其初始状态。
看看各种关于如何使用编码的UI测试的TechEd视频。例如,http://www.youtube.com/watch?v=rZ8Q5EJ2bQM
发布于 2012-05-04 00:43:38
您是在测试UI的操作,还是在测试实际的UI。
如果您正在测试操作以及它们发送到视图的数据,那么使用NUnit、xUnit等工具并使用MOQ或Rhino Mocks等moq框架进行单元测试将是正确的做法。
如果您正在测试实际的UI( web服务器返回的超文本标记语言),那么使用自动化测试框架(如Selenium )将是合适的工具
https://stackoverflow.com/questions/10435474
复制相似问题