我对单元测试非常非常陌生,正在尝试为一种非常简单的方法编写测试:publicclassmyClass:RequireHttpsAttribute{publicoverridevoidOnAuthorization(AuthoizationContextfilterContext){varrequest=filterContext.HttpContext.Request;varheader=Convert.ToBoolean(request.Headers["Special-Header-Name"]);if(!(header||request.IsSecureConnection)){
我一直在为我目前正在编写的一个应用程序(OLE对象的OLE包装器)做一些测试驱动的开发。唯一的问题是我正在使用VisualStudio的快速版本(目前),目前我使用的是VBexpress,但有时我使用C#express。是否可以在express版本中进行TDD?如果是这样,最重要的是什么?干杯。编辑。看起来我将不得不购买完整的visualstudio以便我可以进行集成的TDD,希望预算中有钱购买副本:)。现在我想我会像大家说的那样使用Nunit。 最佳答案 Nunit似乎可以独立工作,为什么不尝试使用VisualStudio的快速版
我对控制台应用程序的Main方法进行单元测试有疑问。标准签名是publicstaticvoidMain(string[]args)我希望能够进行测试以确保只传入1个参数。如果传入了多个参数,我希望测试失败。我不认为我可以用MOQ来模拟它作为它的静态方法。谁有这方面的经验?有什么想法吗?谢谢 最佳答案 在您的场景中没有什么可模拟的。静态Program.Main是一种与任何其他方法一样的方法,您可以通过调用它来测试它。staticvoid方法的问题是您只能验证它是否抛出异常或与输入参数(或其他静态成员,最终)交互。由于在string[]
常量是美丽的人——它们可以在一个独特的地方保存一个在代码中随处使用的值。更改该值只需要一个简单的修改。生活很酷。嗯,这是promise。现实有时是不同的:您将LogCompleteFileName常量值从L:\LOGS\MyApp.log更改为\\Traces\App208.txt并且您得到两个文件:用于跟踪的\\traces\App208.txt和用于日志的\\traces\App208.txt.log...您将TransactionTimeout从2分钟更改为4分钟,但在2分钟后您仍然会超时(在花费了一天之后,您发现您还必须更改DBMS的超时和超时交易经理...)。您将SleepT
我正在学习TDD,我目前有一个有效的方法,但我认为我可以尝试使用TDD重建它。该方法基本上采用6个参数,查询数据库,执行一些逻辑并返回List我的初始测试包括检查空/零定义的字符串和int方法参数值,但现在我不确定该怎么做。如果我不使用TDD,我只会创建代码来查找数据库连接字符串并打开数据库连接、查询数据库、读取值等。显然我们不能在单元测试中做到这一点,所以我在寻求如何进行的一些建议。 最佳答案 请记住,TDD不仅关乎测试,还关乎良好的设计。这种方法太多了;它违反了关注点分离原则。您已经确定了几个需要测试的区域:Themethode
我刚刚开始试验最小起订量以对我的模块进行单元测试。实际上,我必须为其编写单元测试的类使用Assembly.GetExecutingAssembly().Location在内部确定路径。但是,这在编写单元测试时不起作用,因为执行程序集的路径不同(采用单元测试程序集的路径)AppData\\Local\\Temp\\3ylnx32t.ukg\\TestApplication.Test\\assembly\\dl3\\aeb938e6\\f3664631_d982ce01。我试过了,禁用卷影复制。AppDomainSetupappDomain=newAppDomainSetup{Shadow
我有一对列表,我正在尝试使用FluentAssertions进行比较。我可以很容易地编写比较代码,但我想使用FluentAssertions,这样我就可以获得在测试失败消息中显示的原因。到目前为止,我所看到的一切似乎都在使用默认的Object.Equals比较,它区分大小写。我似乎无法将IComparer传递给Equal或Contains方法,还有其他方法吗?[TestMethod()]publicvoidfoo(){varactual=newList{"ONE","TWO","THREE","FOUR"};varexpected=newList{"One","Two","Three"
我有一堆类都实现了一个接口(interface),其中一个参数是StreamWriter。我需要检查StreamWriter的内容。我正试图找到一种方法来避免在测试服务器上写入文本文件并打开它们来检查内容。有没有办法快速将StreamWriter内容/流转换为StringBuilder变量? 最佳答案 您不能检查StreamWriter。您可以检查它正在写入的基础流。因此,您可以在单元测试中使用MemoryStream并将此StreamWriter指向它。一旦它完成写入,您就可以从中读取。[TestMethod]publicvoid
我想在C#中针对所有代码路径测试以下方法。publicintfoo(intx){if(x==1)return1;if(x==2)return2;elsereturn0;}我看过这个pexunittesting测试多个输入的地方。如何创建接受多个输入的单元测试?[TestMethod()]//somesetuphere??publicvoidfooTest(){//someassert}我想避免为每个输入创建一个测试方法。我正在使用VisualStudio2010/2012和.Net4.0 最佳答案 您可以使用XML,Database
如题所示,这个测试名是不是有点顶了?WhenChargeIsGreaterThanRestingChargeButLessThanChargeRestApproachStep_OnUpdate_ChargeIsSetToRestingCharge有什么改进建议吗?还是就这样好了?下面是完整的测试夹具,因此您可以获得一些上下文:)publicclassNeuronTests{[Fact]publicvoidOnUpdate_NeuronFiresWhenChargeIsEqualToThreshold(){Neuronneuron=newNeuron();boolfired=false;