草庐IT

unit-testing

全部标签

c# - Moq 中 SetupSet 和 SetupProperty 的区别

我知道SetupSet是在Moq中设置属性的旧方法。它现在已经过时了,但我的智能感知显示两者都没有标记为过时。谁能指出它们之间的实际区别? 最佳答案 我大概发现了一个不同之处,如下所示。如果您尝试模拟只读属性,则必须使用SetupGet,因为SetupProperty在这种情况下不起作用。而如果您想设置期望值,SetupProperty可用于非只读属性。例如,下面是行不通的publicinterfaceIXyz{intId{get;}}//TestSideCodevar_mock=newMock();_mock.SetupPrope

c# - 单元测试的编写标准

我计划在我的团队中引入一套编写单元测试的标准。但是要包括什么?这两个帖子(Unittestnamingbestpractices和Bestpracticesforfilesystemdependenciesinunit/integrationtests)已经给了我一些思考的空间。我的标准中应该涵盖的其他领域应该是如何设置测试类以及如何组织它们。例如,如果您有一个名为OrderLineProcessor的类,则应该有一个名为OrderLineProcessorTest的测试类。如果该类上有一个名为Process()的方法,那么应该有一个名为ProcessTest的测试(可能更多是为了测试

c# - 单元测试继承

我有一个关于单元测试的问题。假设我有几个从父类继承行为的类。我不想测试所有子类的这种行为。相反,我会测试父类。但是,我还应该提供一个测试来证明该行为在子类中可用。你认为像Assert.IsTrue(newChildClass()isParentClass)这样的东西有意义吗? 最佳答案 让您的测试继承自基类测试,[非常]大致像这样。publicclassMyBaseClass{publicvirtualvoidDoStuff(){}publicvirtualvoidDoOtherStuff(){}}publicclassMySubC

c# - NUnit 不能很好地与 Assert.AreEqual 配合使用

我是单元测试的新手,尤其是NUit。我只是从书中输入一些涉及Java和JUnit的示例。但我改用C#。问题是:我有一个带有重写方法的类,例如Equals()和GetHashCode(),但是当我尝试比较的两个对象时这个类Assert.AreEqual()我的代码没有被调用,所以我得到一个异常。Assert.True(MyClass.Equals(MyClass2))运行良好。但我不想使用此构造代替Assert.AreEqual()。问题出在哪里?这是类:publicclassMoney{publicintamount;protectedstringcurrency;publicMone

c# - 如何使用 Visual Studio 2008 对 C# Web 服务进行单元测试

您应该如何使用VisualStudio2008在C#中对Web服务进行单元测试?当我生成单元测试时,它会添加对Web服务类的实际引用,而不是Web引用。它设置指定的属性:http://msdn.microsoft.com/en-us/library/ms243399(VS.80).aspx#TestingWebServiceLocally然而,它会在不执行测试的情况下完成。我试图将调用添加到WebServiceHelper.TryUrlRedirection(...)但调用不喜欢目标,因为它继承自WebService,而不是WebClientProtocol.

c# - 测试私有(private)静态方法抛出 MissingMethodException

我有这门课:publicclassMyClass{privatestaticintGetMonthsDateDiff(DateTimed1,DateTimed2){//implementatio}}现在我正在对其进行单元测试。由于该方法是私有(private)的,因此我有以下代码:MyClassmyClass=newMyClass();PrivateObjecttestObj=newPrivateObject(myClass);DateTimefromDate=newDateTime(2015,1,1);DateTimetoDate=newDateTime(2015,3,17);obj

c# - Assert.AreEqual 与 Assert.IsTrue/Assert.IsFalse

测试返回类型为bool的方法时。你应该:expected=true;Assert.AreEqual(expected,actual);或Assert.IsTrue(actual);我知道它们都产生相同的结果,但哪种做法更好?编辑:例如,如果我执行AreEqual,它与在返回字符串ala的方法上执行IsTrue本质上不一样吗:stringexpected=“true”;stringactual=test.testMethod(data)booltest;ifexpected.equals(actual)test=true;elsetest=false;Assert.IsTrue(test

c# - 在不使用魔术字符串的情况下将参数传递给 FakeItEasy-mock?

我一直在使用Moq因为我过去几年的mock需要,但在看了FakeItEasy之后我想试一试。我经常想测试是否使用正确的参数调用了一个方法,但我发现使用FakeItEasy没有令人满意的方法。我有以下代码要测试:publicclassWizardStateEngine:IWizardStateEngine{privatereadonlyIWorkflowInvoker_workflowInvoker;privateList_history;publicWizardStateEngine(IWorkflowInvokerworkflowInvoker){_workflowInvoker=w

c# - 使用 NUnit 在不同的应用程序域中运行单元测试

我似乎遇到了一个问题,我们正在使用的应用程序使用Ninject内核,并包含一个特定配置,该配置与WCF调用的内容(用户名、token...)一起收集。基于特定配置,用户被分配了对应用程序的权限,这通过Ninject内核中的特定实例被屏蔽。我们不能只重构Ninject内核,我们想要做的是运行几个Nunit测试,但在单独的应用程序域中运行它们中的每一个(每次都使用不同的设置重新创建内核)。我只找到了在不同的应用程序域中运行整个测试项目的方法,而不是针对每个测试进行测试。有办法解决吗?不幸的是,Ninject配置不在我们身边,我们必须以这种方式“忍受”它。 最佳答

c# - 如何为 "T must be a reference type"编写单元测试?

考虑:classMyClasswhereT:class{}在这种情况下,where子句强制执行MyClass只是引用类型的泛型的规范。理想情况下,我应该有一个测试此规范的单元测试。然而,这个单元测试显然行不通,但它解释了我想要完成的事情:[Test][DoesNotCompile()]publicvoidT_must_be_a_reference_type(){vartest=newMyClass();}如何测试通过不允许代码编译实现的规范?编辑:更多信息:好的,所以我这样做的理由(哈哈)是我一直在遵循TDD方法,在这种方法中,除非单元测试失败,否则您不能编写任何代码。假设您有这个:c