我计划在我的团队中引入一套编写单元测试的标准。但是要包括什么?这两个帖子(Unittestnamingbestpractices和Bestpracticesforfilesystemdependenciesinunit/integrationtests)已经给了我一些思考的空间。我的标准中应该涵盖的其他领域应该是如何设置测试类以及如何组织它们。例如,如果您有一个名为OrderLineProcessor的类,则应该有一个名为OrderLineProcessorTest的测试类。如果该类上有一个名为Process()的方法,那么应该有一个名为ProcessTest的测试(可能更多是为了测试
我有一个关于单元测试的问题。假设我有几个从父类继承行为的类。我不想测试所有子类的这种行为。相反,我会测试父类。但是,我还应该提供一个测试来证明该行为在子类中可用。你认为像Assert.IsTrue(newChildClass()isParentClass)这样的东西有意义吗? 最佳答案 让您的测试继承自基类测试,[非常]大致像这样。publicclassMyBaseClass{publicvirtualvoidDoStuff(){}publicvirtualvoidDoOtherStuff(){}}publicclassMySubC
我已经四处寻找了一段时间,但似乎找不到如何做到这一点。我有一个excel表,我正在使用OpenXML阅读它。现在正常的做法是循环遍历行,然后循环遍历单元格以获取值,这很好。但是除了这些值,我还需要单元格的位置,其格式为(rowindex,ColumnIndex)。我设法获得了行索引,但似乎无法弄清楚如何获得列索引。我实际上认为这会很容易,但显然并非如此。 最佳答案 这比您想象的要复杂一些,因为架构允许省略空单元格。要获取索引,您可以使用Cell具有CellReference的对象以A1、B1等格式提供引用的属性。您可以使用该引用来提
您应该如何使用VisualStudio2008在C#中对Web服务进行单元测试?当我生成单元测试时,它会添加对Web服务类的实际引用,而不是Web引用。它设置指定的属性:http://msdn.microsoft.com/en-us/library/ms243399(VS.80).aspx#TestingWebServiceLocally然而,它会在不执行测试的情况下完成。我试图将调用添加到WebServiceHelper.TryUrlRedirection(...)但调用不喜欢目标,因为它继承自WebService,而不是WebClientProtocol.
我需要访问Excel电子表格并将电子表格中的数据插入SQL数据库。然而,主键是混合的,大多数是数字,有些是字母数字。我遇到的问题是,当数字键和字母数字键在同一个电子表格中时,字母数字单元格返回空白值,而所有其他单元格返回它们的数据没有问题。我正在使用OleDb方法访问Excel文件。使用命令字符串检索数据后,我将数据放入DataAdapter,然后填充DataSet。我遍历数据集中第一个数据表中的所有行(dr)。我通过使用dr["..."].ToString()来引用列如果我在VisualStudio2008中调试项目并查看“扩展属性”,通过将鼠标悬停在“dr”上,我可以查看DataR
我似乎遇到了一个问题,我们正在使用的应用程序使用Ninject内核,并包含一个特定配置,该配置与WCF调用的内容(用户名、token...)一起收集。基于特定配置,用户被分配了对应用程序的权限,这通过Ninject内核中的特定实例被屏蔽。我们不能只重构Ninject内核,我们想要做的是运行几个Nunit测试,但在单独的应用程序域中运行它们中的每一个(每次都使用不同的设置重新创建内核)。我只找到了在不同的应用程序域中运行整个测试项目的方法,而不是针对每个测试进行测试。有办法解决吗?不幸的是,Ninject配置不在我们身边,我们必须以这种方式“忍受”它。 最佳答
考虑:classMyClasswhereT:class{}在这种情况下,where子句强制执行MyClass只是引用类型的泛型的规范。理想情况下,我应该有一个测试此规范的单元测试。然而,这个单元测试显然行不通,但它解释了我想要完成的事情:[Test][DoesNotCompile()]publicvoidT_must_be_a_reference_type(){vartest=newMyClass();}如何测试通过不允许代码编译实现的规范?编辑:更多信息:好的,所以我这样做的理由(哈哈)是我一直在遵循TDD方法,在这种方法中,除非单元测试失败,否则您不能编写任何代码。假设您有这个:c
我偶尔听说或读到有人在单元测试中断言他们的接口(interface)。我的意思不是模拟一个接口(interface)用于另一种类型的测试,而是专门创建一个测试来伴随该接口(interface)。考虑这个极端蹩脚和即兴的例子:publicinterfaceIDoSomething{stringDoSomething();}和测试:[TestFixture]publicclassIDoSomethingTests{[Test]publicvoidDoSomething_Should_Return_Value(){varmock=newMock();varactualValue=mock.E
我正在尝试测试以下内容:protectedIHealthStatusVerifyMessage(ISubscriberdestination){varstatus=newHeartBeatStatus();vartask=newTask(()=>{Console.WriteLine("VerifyMessage(Start):{0}-{1}",DateTime.Now,WarningTimeout);Thread.Sleep(WarningTimeout-500);Console.WriteLine("VerifyMessage(Success):{0}",DateTime.Now);
我正在使用CodeFirst将类映射到现有数据库。我需要一种方法来对这些映射进行单元测试,它们混合了基于约定、基于属性和流畅的API。为了进行单元测试,我需要确认类的属性映射到数据库中正确的表名和列名。此测试需要针对上下文执行,并且应首先涵盖代码的所有配置选项。在非常高的层次上,我希望断言类似(伪代码)的东西:Assert.IsTrue(context.TableFor().IsNamed("tbl_Widget"));Assert.IsTrue(context.ColumnFor(w=>w.Property).IsNamed("WidgetProperty"));