草庐IT

unit-testing

全部标签

c# - XNA 模拟游戏对象或解耦你的游戏

我在想是否可以模拟一个Game对象来测试我的DrawableGameComponent组件?我知道模拟框架需要一个接口(interface)才能运行,但我需要模拟实际的Game对象。编辑:这是一个link在XNA社区论坛上进行相应的讨论。有帮助吗? 最佳答案 该论坛中有一些关于单元测试主题的好帖子。这是我在XNA中进行单元测试的个人方法:忽略Draw()方法在您自己的类方法中隔离复杂的行为测试棘手的东西,不要担心剩下的这是一个测试示例,用于确认我的Update方法将实体移动到Update()调用之间的正确距离。(我正在使用NUnit

c# - 为什么当我比较两个空列表时测试 'Assert.AreEqual' 失败了?

我有一个类MyCustomClass:publicMyCustomClass{publicMyCustomClass(){MyObject=newList();}publicListMyObject{get;set;}}在测试中:Listaux=newList();MyCustomClassoClass=newMyCustomClass();Assert.AreEqual(aux,oClass.MyObject)测试失败,为什么?每个属性、静态成员等都是相同的。 最佳答案 在这种情况下,Assert.AreEqual将检查两个对象是

c# - 使用 Moq 和 TDD,从哪里开始?

我有一个服务器应用程序,我想知道如果我想开始实现TDD和使用Moq,我应该从哪里开始。关于这个主题,我可以阅读哪些不太“面向网络”的好书?我对此事有疑问,例如:我应该模拟我想要测试的每个对象,还是只模拟那些我无法实现的对象,比如文本编写器?我的服务器需要大量设置才能真正执行我想测试的任何事情,我是否应该将其塞入[TestInitialize]函数?如果我想测试更深层次的功能,我应该如何链接我的测试? 最佳答案 您无需模拟要测试的对象。如果你这样做,你就是在测试模拟,而不是你的对象!您需要模拟正在测试的对象的依赖性。

C#:使用私有(private)静态成员进行单元测试?

我有一个类的结构是这样的:privatestaticDictionary_historyManagers=newDictionary();让我们说2种方法:publicvoidAddSth(){_historManagers.Add(newContract(),newPriceHistoryManager());}publicintCountDic(){return_historyManagers.Count();}问题:当运行单元测试时,没有办法“重置”字典,当我用类的单独实例创建多个单元测试时,“CountDic”会给出不可预测的结果,我无法测试监听。问题:这通常被认为是一种“坏”

c# - 使用 Mocks 验证依赖调用时的 TDD Arrange Act Assert 模式

我正在使用Moq来测试一些void方法的行为。使用MockBehaviour.Strict必须在Arrange步骤期间指定对模拟的每次调用。这导致许多测试没有任何Assert(或Verify)步骤。通过条件只是测试运行没有抛出异常。我错过了什么吗?Arrange,Act,Assert模式在使用严格模拟时是否不合适?是否有更语义化的方式来安排这些测试?一个简单的虚构例子......[TestClass]publicvoidDeleteUser_ShouldCallDeleteOnRepository(){//ArrangevaruserRepository=newMock(MockBeh

c# - 如何在 asp.net core 中获取 IConfiguration 的实例?

我制作了一个单元测试项目来测试我的webapi,我需要初始化一个Controller,问题是在构造函数中它接收到一个IConfiguration,它由依赖注入(inject)提供并且工作正常。但是当我想手动初始化它时,我没有办法得到这个实例。我正在尝试从同一项目内部的单元测试项目初始化它。Controller看起来像:publicController(IConfigurationconfiguration){_configuration=configuration;} 最佳答案 我可能应该从以下声明开始:在.NetCore应用程序中

c# - 在单元测试中确定线程安全

我正在编写一个多线程应用程序,我也在尝试找出如何为其编写合适的单元测试。我认为这可能是关于如何最好地做到这一点的另一个问题。还有一个问题,我有一个像下面这样的类,知道它不是线程安全的,想在单元测试中证明它,但不知道如何去做:publicclassMyClass{privateListMyList=newList();publicvoidAdd(stringData){MyList.Add(Data);//Thisisnotthreadsafe!!}} 最佳答案 证明某些东西是线程安全的是棘手的——可能很难停止问题。您可以证明竞争条件

c# - Nunit 未在测试项目类库 (VS2012) 中遇到断点

我有一个控制台应用程序,我向项目添加了一个类库解决方案来进行我所有的单元测试。除了在我运行测试时没有命中断点这一事实外,一切正常。如果我运行整个应用程序,控制台应用程序上的断点会正常命中。如果我运行测试,测试类和控制台应用程序中的断点将被完全忽略。我看到另一篇文章说去调试>启动新实例,但由于它是一个类库,我不能这样做。我应该在不同的项目类型中进行测试吗?我正在使用Nunit、VS2012和NUnit运行程序。我有几个测试失败了,我不知道为什么,我真的需要能够单步执行代码。非常感谢任何帮助。 最佳答案 与其运行您的测试,不如尝试调试您

c# - 测试使用 HttpContext.Current.Request.Files 的 Web API 方法?

我正在尝试为使用HttpContext.Current.Request.Files的WebAPI方法编写测试,经过详尽的搜索和实验后,我无法弄清楚如何模拟它。正在测试的方法如下所示:[HttpPost]publicHttpResponseMessagePost(){varrequestFiles=HttpContext.Current.Request.Files;varfile=requestFiles.Get(0);//dosomeotherstuff...}我意识到有otherquestionssimilartothis,但他们没有解决这个具体情况。如果我尝试模拟上下文,我会遇到H

c# - 用与代码不同的语言编写单元测试的缺点是什么?

单元测试与生产代码有不同的要求。例如,单元测试可能不必像生产代码那样高效。也许有时用更适合编写单元测试的语言编写单元测试是有意义的?我想到的具体示例是使用C#编写应用程序,但使用IronRuby或IronPython编写测试。在我看来,使用IronPython和IronRuby作为测试语言比C#代码有几个优势:模拟在动态类型语言中可以更简单IronPython具有较少的单元测试不需要的冗长类型注释通过在解释器中键入命令,无需重新编译即可实验调用测试使用两种不同的语言进行测试和生产代码的权衡是什么? 最佳答案 我想到的缺点:根据语言的