草庐IT

unit-testing

全部标签

c# - 构建用于测试的 HttpContext,如何指定 HttpRequest 是 POST?

我正在为将HttpContext作为参数的方法编写一些单元测试。当请求是POST时,我想测试行为是否符合预期。创建System.Net.HttpWebRequest时很容易设置方法,但我看不到在创建System.Web.HttpRequest时指定方法的方法,这是在HttpContext中使用的方法。有什么想法吗?对于上下文,该方法由httphandler调用,如果请求不是POST,它应该抛出405。我知道我可以使用web.config中的Verbs属性过滤允许的方法,我会的,但是没有什么可以阻止将来有人更改verbs属性以允许其他方法,在这种情况下我希望处理程序注意它本身。当前使用的

c# - 如何创建模拟 HttpWebRequest 和 HttpWebResponse 对象

如何创建模拟HttpWebRequest和HttpWebResponse对象我正在尝试对以下代码进行单元测试HttpWebrequestrequest;if(null!=request){varresponse=(HttpWebResponse)request.GetResponse();using(varsr=newStreamReader(response.GetResponseStream())){jsonResult=sr.ReadToEnd();}varmyRecords=SerializationHelper.Deserialize(jsonResult);}

c# - 深度克隆的单元测试

假设我有一个复杂的.NET类,其中包含大量数组和其他类对象成员。我需要能够生成该对象的深度克隆-所以我编写了一个Clone()方法,并使用简单的BinaryFormatter序列化/反序列化实现它-或者我可能使用其他更容易出错的技术进行深度克隆我想确保已经过测试。好吧,现在(好吧,我应该先做)我想编写涵盖克隆的测试。该类的所有成员都是私有(private)的,而且我的架构非常好(!)以至于我不需要编写数百个公共(public)属性或其他访问器。该类不是IComparable或IEquatable,因为应用程序不需要它。我的单元测试位于生产代码的单独程序集中。人们采用什么方法来测试克隆的

c# - 通用类/方法的单元测试方法

覆盖泛型类/方法单元测试的推荐方法是什么?例如(引用我下面的示例代码)。是否会有2或3次测试来涵盖使用几种不同类型的TKey、TNode类测试方法?还是只上一节课就够了?publicclassTopologyBasewhereTNode:NodeBase,new()whereTRelationship:RelationshipBase,new(){//PropertiespublicDictionary>Nodes{get;privateset;}publicList>Relationships{get;privateset;}//ConstructorsprotectedTopolo

c# - 如何使用 Sql CE 4 数据库进行功能测试

由于Linq-to-Entities(EF4)和Linq-to-Objects之间的潜在差异,我需要使用实际的数据库来确保我的查询类正确地从EF检索数据。SqlCE4似乎是完美的工具,但是我遇到了一些小问题。这些测试使用的是MsTest。我遇到的问题是,如果数据库没有被重新创建(由于模型更改),数据会在每次测试后不断添加到数据库中,而不会删除数据。这可能会导致测试冲突,查询返回的数据多于预期。我的第一个想法是在TestInitialize方法中初始化一个TransactionScope,并在TestCleanup中处理事务。不幸的是,SqlCE4不支持事务。我的下一个想法是通过File

c# - moq:使用 Setup() 时,如何确定方法参数的相等性?

我正在使用Setup()方法来设置模拟接口(interface)实例的行为。我正在设置的方法(我们称它为DoSomething())接受一个类的实例(我们称该类为Foo)。Foofoo=//ExistingfooinstanceMockmock=newMock();mock.Setup(x=>x.DoSomething(foo)).Returns(1);我遇到的问题是,当我使用模拟时,它永远不会匹配设置,所以永远不会返回1。有人可以帮忙吗?Moq如何判断提供给setup方法的参数是否相等? 最佳答案 我的问题的答案是Moq使用.Eq

c# - 如何使用 Jenkins 安排 C# 单元测试?

在过去的6个月里,我们的测试团队一直在使用seleniumwebdriver来测试我们基于网络的产品。我们已经取得了巨大的成功,并且每天都在继续使用它。我们使用visualstudio,因为我们是一个.net商店来编写我们的c#单元测试。我们不使用任何其他.net测试框架。直到最近,我们一直通过visualstudio(2013)中的测试资源管理器窗口手动运行自动化测试,检查结果,然后将它们记录到电子表格中。我知道这并不理想,但我们没有那么多测试,所以到目前为止这很适合我们。然而,我们需要编写和维护的自动化测试的数量将在未来几个月内迅速增加。我最近一直在尝试创建用于调用vstest.c

c# - 代码访问 ActiveDirectory 的单元测试

对访问ActiveDirectory的应用程序进行单元测试和/或模拟对AD的依赖性的最佳方法是什么?所有必需的类型,如DirectorySearcher和DirectoryEntry似乎都不容易模拟。我们有像FindByUserName()这样的方法,并且想要(单元)测试它们。 最佳答案 如果它们不可模拟(手头没有MSDN,所以我真的不能说),你总是可以在IDirectorySearcher和IDirectoryEntry后面抽象它们>并mock这些。通过这种方法,您可以根据自己的需要进行专门定制,从而简化API。

c# - 我可以在Visual Studio中为单元测试/负载测试创建自定义TestContext计时器吗?

我的一些UnitTest具有在循环中定义的Sleep。我不仅要描述测试的每个迭代,还要描述所有迭代的总时间,以显示任何非线性缩放比例。例如,如果我分析“总体”,则它包括sleep时间。我可以使用StopwatchStart/Stop,以便它仅包含doAction()。但是,我无法将秒表结果写入TestContext结果。[TestMethod]publicvoidTestMethod1(){TestContext.BeginTimer("Overall");for(inti=0;i看来TestContext可以继承并重新定义。但是,我看不到任何将其写回到事务存储的示例。有没有我可以引用

c# - 使用 Moq 模拟 nHibernate QueryOver

测试时,以下行因空引用而失败:varawards=_session.QueryOver().Where(x=>x.BusinessId==(int)business).List();我的测试是这样的:varmockQueryOver=newMock>();mockQueryOver.Setup(q=>q.List()).Returns(newList{_awardingBody});_mockSession.Setup(c=>c.QueryOver()).Returns((mockQueryOver.Object));_mockCommandRunner=newMock();_gene