基本问题是如何创建需要调用方法的单元测试,等待测试类上发生事件,然后调用另一个方法(我们实际要测试的方法)?如果您有时间进一步阅读,下面是场景:我正在开发一个必须控制硬件的应用程序。为了避免硬件可用性的依赖性,当我创建我的对象时,我指定我们在测试模式下运行。当发生这种情况时,被测试的类会创建适当的驱动程序层次结构(在本例中是硬件驱动程序的薄模拟层)。假设所讨论的类是一个电梯,我想测试给我电梯所在楼层数的方法。这是我的虚拟测试现在的样子:[TestMethod]publicvoidTestGetCurrentFloor(){varelevator=newElevator(Elevator
我正在用C#编写一个数据结构(使用fibonacciheap的优先级队列),我正在尝试将其用作TDD的学习经验,我对此还很陌生。我知道每个测试应该只测试类的一个部分,这样一个单元的失败就不会把我与多个测试失败混淆,但我不确定当数据结构的状态时如何做到这一点对考试很重要。例如,privatePriorityQueuequeue;[SetUp]publicvoidInitialize(){this.queue=newPriorityQueue();}[Test]publicvoidPeekShouldReturnMinimumItem(){this.queue.Enqueue(2);thi
我是一名刚接触TDD的C#开发人员,愿意尝试这种开发方法。我当前的设置是VisualStudio2010+Resharper(运行单元测试非常方便-设置单元测试session,并且有运行和调试测试按钮)。不过,我觉得可能有更多方法可以加速TDD(例如:保存测试文件时自动运行其中的测试)。那么,使用VisualStudio的TDD专家-您能否分享有关如何提高TDD流程效率的任何技巧? 最佳答案 工具我通常将键盘快捷键绑定(bind)到上下文运行。您可以通过点击“工具”、“选项”在VisualStudio的选项中执行此操作,然后在“环境
我是TDD的新手。我已经开始在View模型上创建我需要的属性作为普通自动属性。publicstringFirstname{get;set;}然后我创建一个测试[TestMethod][Tag("Property")]publicvoidFirstNameTest(){ViewModel=newCustomerViewModel();ViewModel.PropertyChanged+=(s,e)=>{Assert.AreEqual("Firstname",e.PropertyName);Assert.AreEqual("Test",ViewModel.Firstname);};View
我一直在为我目前正在编写的一个应用程序(OLE对象的OLE包装器)做一些测试驱动的开发。唯一的问题是我正在使用VisualStudio的快速版本(目前),目前我使用的是VBexpress,但有时我使用C#express。是否可以在express版本中进行TDD?如果是这样,最重要的是什么?干杯。编辑。看起来我将不得不购买完整的visualstudio以便我可以进行集成的TDD,希望预算中有钱购买副本:)。现在我想我会像大家说的那样使用Nunit。 最佳答案 Nunit似乎可以独立工作,为什么不尝试使用VisualStudio的快速版
常量是美丽的人——它们可以在一个独特的地方保存一个在代码中随处使用的值。更改该值只需要一个简单的修改。生活很酷。嗯,这是promise。现实有时是不同的:您将LogCompleteFileName常量值从L:\LOGS\MyApp.log更改为\\Traces\App208.txt并且您得到两个文件:用于跟踪的\\traces\App208.txt和用于日志的\\traces\App208.txt.log...您将TransactionTimeout从2分钟更改为4分钟,但在2分钟后您仍然会超时(在花费了一天之后,您发现您还必须更改DBMS的超时和超时交易经理...)。您将SleepT
如题所示,这个测试名是不是有点顶了?WhenChargeIsGreaterThanRestingChargeButLessThanChargeRestApproachStep_OnUpdate_ChargeIsSetToRestingCharge有什么改进建议吗?还是就这样好了?下面是完整的测试夹具,因此您可以获得一些上下文:)publicclassNeuronTests{[Fact]publicvoidOnUpdate_NeuronFiresWhenChargeIsEqualToThreshold(){Neuronneuron=newNeuron();boolfired=false;
我有一个单元测试,我正在检查一个方法是否被调用一次,所以我尝试了这种方式:-这是我的ILicenseManagerService模拟,我正在通过构造函数传递它的对象。publicMockLicenseManagerService{get{returnSetLicenseManagerServiceMock();}}privateMockSetLicenseManagerServiceMock(){varlicencemangerservicemock=newMock();licencemangerservicemock.Setup(m=>m.LoadProductLicenses())
当您采用“假装直到成功”TDD方法时,我很难理解代码的演变。好吧,你伪造了它,假设你返回了一个常量,所以失败的测试在开始时是绿色的。然后你重构了你的代码。然后你运行同样的测试,它显然会通过,因为你伪造了它!但是如果测试通过了,你怎么能相信它,尤其是当你知道你是伪造的时候?应该如何用您的真实代码重构来重构伪造的测试,以便它仍然可靠?谢谢 最佳答案 简短的回答是:编写更多测试。如果该方法返回一个常量(当它应该计算某些东西时),只需添加一个具有不同结果的条件测试。因此,假设您有以下内容:@TestpublicvoidtestLength(
抱歉,如果这是一个愚蠢的菜鸟问题,请对我温柔一点,我正在努力学习...我想针对模型和Controller等事物的属性方法进行测试。主要是为了确保它们具有正确的属性,即Required。但我也将其用作扩展方法和Lambdas的实验。我想要的是一种方法,当implimented看起来像Controllercontroller=newController();controller.MethodName(params).HasAttribute();我使用了一点扩展方法,但没用到这个程度。我相信这应该很简单,但似乎无法让我的泛型等正确。 最佳答案