Tag: unit testing

在testing过程中覆盖DateTime.Now的好方法是什么?

我有一些(C#)代码依赖今天的date来正确计算未来的事情。 如果我在testing中使用今天的date,我不得不在testing中重复计算,这是不正确的。 在testing中将date设置为已知值的最佳方法是什么,以便我可以testing结果是已知值?

Visual Studio 2015不会发现unit testing

编辑2016-10-19: 原来的问题是关于一个针对VS2015 CTP6与XUnittesting跑步者的问题。 从答案中可以清楚地看到,Visual Studio中的unit testing发现在很多不同的情况下可能会出现更广泛的问题。 我清理了我的问题来反映这一点。 我还在自己的答案中包含了一个脚本,我仍然使用它来解决类似的问题。 许多其他答案也certificate有助于更好地理解VStesting跑步者的错综复杂。 我明白,人们仍然在分享他们的解决scheme! 原始问题2015-04-10: 从昨天起,我的Visual Studio Test Explorer将不会发现我的任何项目的testing。 它不会在build筑后显示绿色的加载栏。 当我去Visual Studio的testing资源pipe理器,并单击“全部运行”,或者当我右键单击任何testing方法,并select“运行testing”,我得到以下在我的输出窗口中: Could not load file or assembly 'Microsoft.VisualStudio.Web.ProjectSystem, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The system cannot find the file specified. 我正在Windows 10 Pro Technical Preview上运行Visual Studio 2015 CTP 6,编译为10041. .NET Framework版本似乎并不重要 – 它发生在4.0,4.5.2和4.6 。 我试着用下面的testing框架,他们都给出了相同的行为: […]

unit testing,NUnit还是Visual Studio?

我使用Visual Studio(有时是resharper)来运行我的unit testing。 我听说过NUnit,但是我不知道很多… 我应该关心它吗? 它可以提供比视觉工作室更好的东西吗? 我应该使用NUnit,为什么?

如何在Visual Studio中以debugging模式运行NUnit?

我最近一直在构build一个C#的testing框架,我一直在努力。 我有NUnit设置和我的工作区内的一个新的项目来testing组件。 如果我从Nunit(v2.4)加载我的unit testing,所有的工作都很好,但是我已经到了在debugging模式下运行并设置一些断点非常有用的地步。 我已经尝试了几个指南的build议,这些build议都build议更改testing项目的“debugging”属性: Start external program: C:\Program Files\NUnit 2.4.8\bin\nunit-console.exe Command line arguments: /assembly: <full-path-to-solution>\TestDSP\bin\Debug\TestDSP.dll 我在那里使用控制台版本,但也尝试调用GUI。 当我尝试并开始debugging时,都给我同样的错误: Cannot start test project 'TestDSP' because the project does not contain any tests. 这是因为我通常将\ DSP.nunit加载到Nunit GUI中,这就是testing的地方吗? 我开始认为这个问题可能是VS想运行它自己的testing框架,这就是为什么它没有findNUnittesting? 编辑 :对于那些询问testing装置,我的.cs文件在TestDSP项目中的一个看起来大致是这样的: namespace Some.TestNamespace { // Testing framework includes using NUnit.Framework; [TestFixture] public class FirFilterTest { [Test] public void Test01_ConstructorTest() […]

TransactionManagementError“在使用信号的时候,你不能执行查询直到”primefaces“块结束”,而只能在unit testing

我试图保存一个Django的用户模型实例,并在其post_save信号,我正在保存一些模型,有用户作为外键得到TransactionManagementError。 使用信号时 ,上下文和错误与django TransactionManagementError类似 但是,在这种情况下,错误仅在unit testing时发生。 它在手动testing中运行良好,但是unit testing失败。 有什么我失踪? 以下是代码片段: views.py @csrf_exempt def mobileRegister(request): if request.method == 'GET': response = {"error": "GET request not accepted!!"} return HttpResponse(json.dumps(response), content_type="application/json",status=500) elif request.method == 'POST': postdata = json.loads(request.body) try: # Get POST data which is to be used to save the user username = postdata.get('phone') password = postdata.get('password') […]

unit testing的投资回报是否有确凿的证据?

unit testing对我来说听起来很棒,但是我不确定我应该花费什么时间真正学习它,除非我能说服其他人具有重要价值。 我必须说服其他程序员,更重要的是说服pipe理中的bean-counter,花在学习testing框架,编写testing,保持更新等等上的所有额外时间将会为自己付出代价,然后再付出一些代价。 有什么证据呢? 有没有人实际上开发了两个独立的团队相同的软件,一个使用unit testing,另一个不是,并比较结果? 我对此表示怀疑。 我只是为了certificate这一点:“在互联网上查看,大家都在谈论这个问题,所以一定是正确的做法”? 在哪里可以说服外行说单位testing是值得的?

威胁中的约束

我刚开始玩Guice,我能想到的一个用例是,在一个testing中我只想重载一个绑定。 我想我想使用其余的生产级别的绑定,以确保一切安装正确,并避免重复。 所以想象我有以下模块 public class ProductionModule implements Module { public void configure(Binder binder) { binder.bind(InterfaceA.class).to(ConcreteA.class); binder.bind(InterfaceB.class).to(ConcreteB.class); binder.bind(InterfaceC.class).to(ConcreteC.class); } } 而在我的testing中,我只想重写InterfaceC,同时保持InterfaceA和InterfaceB的机智,所以我想要的东西是这样的: Module testModule = new Module() { public void configure(Binder binder) { binder.bind(InterfaceC.class).to(MockC.class); } }; Guice.createInjector(new ProductionModule(), testModule); 我也尝试了以下,没有运气: Module testModule = new ProductionModule() { public void configure(Binder binder) { super.configure(binder); binder.bind(InterfaceC.class).to(MockC.class); } }; Guice.createInjector(testModule); 有谁知道是否有可能做我想要的,或者我完全吠叫错误的树? […]

ScalaTest和Scala Specsunit testing框架有什么区别?

两者都是用Scala编写的Scala的BDD(行为驱动开发)functionunit testing框架。 Specs 的构build也可能涉及到ScalaTest框架。 但Specs提供的ScalaTest不具备什么function? 有什么区别?

unit testing是否可以成功添加到现有的生产项目中? 如果是这样,那么值得吗?

我正在强烈考虑将unit testing添加到正在生产的现有项目中。 它是在18个月前开始的,然后才真正看到了TDD (面掌)的好处,所以现在这是一个相当大的解决scheme,有很多项目,我还没有从哪里开始添加unit testing。 是什么让我觉得这是偶尔一个旧的bug似乎重新出现,或者一个错误被固定在没有被固定的情况下检查。 unit testing会减less或防止这些问题发生。 通过阅读类似的问题,我看到了一些build议,比如从bug跟踪器开始,为每个bug编写一个testing用例,以防止回归。 但是,我担心我最终会错过大局,最终会丢失如果我从头开始使用TDD就会包含的基本testing。 是否有任何程序/步骤应该遵循,以确保现有的解决scheme是适当的unit testing,而不是只是入住? 我怎样才能确保testing的质量好,而不是任何testing的情况比没有testing好 。 所以我想我也问的是, 生产中现有的解决scheme值得付出吗? 最好忽略这个项目的testing,并将其添加到未来可能的重写中? 什么会更有益; 花费几个星期来增加testing或者几个星期增加function? (显然第三点的答案完全取决于你是否正在与pipe理层或开发人员交谈) 赏金的原因 添加一个赏金,试图吸引更广泛的答案,不仅证实我现有的怀疑,这是一件好事,但也有一些很好的理由反对。 我打算稍后写下这个问题,以利弊告诉pipe理层,花时间把产品的未来发展转移到TDD上是值得的。 我想要接近这个挑战,并发展我的推理,而不是我自己的偏见。

你把unit testing放在同一个项目还是另一个项目?

你为了方便把unit testing放在同一个项目中,还是把它们放在一个单独的程序集中? 如果像我们这样将它们放在一个单独的程序集中,那么解决scheme中会包含一些额外的项目。 在编写代码的unit testing中很棒,但是如何在没有所有这些额外程序集的情况下释放应用程序呢?