草庐IT

c# - Async TestInitialize 保证测试失败

在TestInitialize中进行异步调用是不正确的设计,因为TestInitialize必须在任何TestMethod之前发生并且具有固定的签名。这在任何方面都可以是正确的方法来进行异步TestInitialize吗?privateintval=0;[TestInitialize]publicasyncTaskTestMehod1(){varresult=awaitLongRunningMethod();val=10;}[TestMethod]publicvoidTestMehod2(){Assert.AreEqual(10,val);}有什么想法吗?

c# - TDD - 为迭代/使用集合的方法编写测试

作为TDD的新手,我正在努力编写处理集合的单元测试。例如,目前我正在尝试提出一些测试方案来从根本上测试以下方法intFind(Listlist,Predicatepredicate);该方法应返回列表list中与谓词predicate匹配的第一项的索引。到目前为止,我能够想出的唯一测试用例是当list不包含任何项目时-返回-1当list包含1个匹配predicate的项目时-返回0当list包含1个与predicate不匹配的项目时-返回-1当list包含2个都匹配predicate的项目时-返回0当list包含2个项目时,第一个匹配predicate-返回0等...但是正如您所见,这

c# - 获取 Xunit 中运行测试的名称

使用Xunit,如何获取当前正在运行的测试的名称?publicclassTestWithCommonSetupAndTearDown:IDisposable{publicTestWithCommonSetupAndTearDown(){varnameOfRunningTest="TODO";Console.WriteLine("Setupfortest'{0}.'",nameOfRunningTest);}[Fact]publicvoidBlub(){}publicvoidDispose(){varnameOfRunningTest="TODO";Console.WriteLine("

c# - 将测试驱动开发应用于紧密耦合的架构

我最近一直在研究TDD,参加了一个session并涉足了一些测试,我已经100%被说服了,我非常喜欢TDD。因此,我向我的前辈们提出了这个问题,他们准备给它一个机会,所以他们让我想出一种在我们的企业产品开发中实现TDD的方法。问题是我们的系统从VB6时代发展到.NET,并实现了许多遗留技术和一些远非最佳实践的开发技术,即ASP.NET代码隐藏和客户端脚本中的大量业务逻辑。然而,最大的问题是我们的类是如何与数据库访问紧密耦合的;属性、方法、构造函数——通常以某种形式具有某些数据库访问权限。我们使用内部数据访问代码生成器工具创建sqlDataAdapters,为我们提供我们可能想要的所有数

c# - "Hello World"- TDD 方式?

好吧,自从我接触到TDD以来,我就一直在思考这个问题。哪种方法是构建“HelloWorld”应用程序的最佳方式?这将在控制台上打印“HelloWorld”——使用测试驱动开发。我的测试会是什么样子?和围绕什么类?要求:没有“wikipedia-like”链接指向什么是TDD,我熟悉TDD。只是好奇如何解决这个问题。 最佳答案 您需要将控制台隐藏在界面后面。(反正这个也算是有用的吧)编写测试[TestMethod]publicvoidHelloWorld_WritesHelloWorldToConsole(){//ArrangeICo

c# - 数据驱动测试的类/模式感知测试数据生成策略

我最近开始在我工作的地方插入TDD。到目前为止,一切进展顺利。我们正在编写测试,我们让它们在提交时自动运行,并且我们一直在寻求改进我们的流程和工具。我发现可以改进的一件事是我们设置测试数据的方式。在严格的单元测试中,我们经常发现自己实例化和填充复杂的CLR对象。这很痛苦,通常测试只会在少数情况下运行。我想插入的是数据驱动测试。我认为我们应该能够从文件中加载我们的测试数据,或者甚至可以从模式中动态生成它们(尽管我只会考虑动态地这样做,如果我可以生成一个对象的每个可能的配置,那么数量配置很小)。这是我的问题。我还没有找到为C#CLR对象生成测试数据的好策略。我研究了从XSD生成XML数据,

c# - 单元测试私有(private)代码

这个问题在这里已经有了答案:UnittestingprivatemethodsinC#(16个答案)关闭6年前。我目前正在使用C#进行开发-以下是一些背景信息:我们用我们的客户端应用程序实现MVP,并且我们有一个圈规则,该规则规定任何方法的圈复杂度都不应大于5。这导致了很多小的私有(private)方法,这些方法通常只负责一件事。我的问题是关于对类进行单元测试的:通过公共(public)方法测试私有(private)实现没问题......我在实现这个方面没有问题。但是……下面的情况呢:Example1.Handletheresultofanasyncdataretrivalreques

c# - Moq 异步回调因多个参数而失败

如果这是我做错了什么,或者它是最小起订量或NUnit中的问题,我正在尝试锻炼。我正在调用一个soap端点,我的服务引用正在生成同步和异步方法。我正在调用的电话看起来像:publicasyncTaskDoThisAsync(idnameobjectmyobj,intid){awaitws.DoSomethingAsync(myobj,id);}我正在设置我的最小起订量以返回回调,因此我可以将调用Web服务时使用的参数进行交互。我的测试看起来像:varcallback=newidnameobject();wsMock.SetUp(w=>w.DoSomethingAsync(It.IsAny

c# - 单元测试——我做的对吗?

基本上我已经编程了一段时间,在完成我的最后一个项目后可以完全理解如果我完成TDD会容易得多。我想我仍然没有严格执行它,因为我仍在编写代码然后为其编写测试,如果您不知道什么结构以及如何存储数据等,我不太了解测试如何在代码之前进行...但是无论如何...有点难以解释,但基本上可以说,例如我有一个Fruit对象,具有id、color和cost等属性。(所有存储在文本文件中的都完全忽略任何数据库逻辑等)FruitIDFruitNameFruitColorFruitCost1AppleRed1.22AppleGreen1.43AppleHalfHalf1.5这只是举例。但是可以说我有这是Frui

c# - 设置最小起订量并验证是否调用了方法

使用Microsoft测试框架和起订量,我正在尝试验证是否调用了log4net方法。[TestMethod()]publicvoidLog_Info_When_Stuff_Is_Done(){SampleClasssampleObject=newSampleClass();MocklogMockObject=newMock();sampleObject.Log=logMockObject.Object;sampleObject.DoStuffAndLogInfo();logMockObject.Verify(moqLog=>moqLog.Info("dostuffgotcalled")