草庐IT

unit-testing

全部标签

c# - 这个 Ambient Context 怎么会变成 null 呢?

谁能帮我解释一下TimeProvider.Current如何在下面的类中变为null?publicabstractclassTimeProvider{privatestaticTimeProvidercurrent=DefaultTimeProvider.Instance;publicstaticTimeProviderCurrent{get{returnTimeProvider.current;}set{if(value==null){thrownewArgumentNullException("value");}TimeProvider.current=value;}}public

c# - 在 C# 项目中包含用于单元测试的资源文件

我有一些读取和修改文件的函数。为了使单元测试独立于任何文件系统问题,我想将文件包含在项目中。但是,我的函数应该是获取文件路径,而我只能从程序集中获取一个FileStream。知道如何获取项目中资源文件的文件路径吗?System.Reflection.Assemblya=System.Reflection.Assembly.Load(assemblyName);FileStreamstream=a.GetFile(assemblyName+"."+fileName); 最佳答案 对于这个问题,我通常的解决方案是重构我的程序以在调用方法

c# - 模拟 IRavenQueryable 并附加 Where() 表达式

我正在尝试为一个新的mvc3项目做一些基本的概念类型代码证明。我们将Moq与RavenDB结合使用。行动:publicActionResultIndex(stringid){varmodel=DocumentSession.Query().Where(f=>f.ResponsibleBusinessId==id);returnView(model);}测试:privatereadonlyFixture_fixture=newFixture();[Test]publicvoidIndex_Action_Returns_List_Of_FinancialTransactions_For_B

c# - 单元测试 DelegatingHandler

如何对自定义DelegatingHandler进行单元测试?我有以下内容,但它提示未设置innerHandler。varhttpRequestMessage=newHttpRequestMessage(HttpMethod.Get,"http://foo.com");varhandler=newFooHandler(){InnerHandler=newFooHandler()};varinvoker=newHttpMessageInvoker(handler);varresult=awaitinvoker.SendAsync(httpRequestMessage,newCancella

c# - 对 HttpApplication 进行单元测试

我有一个派生自HttpApplication的类,它添加了一些额外的功能。我已经到了需要对这些功能进行单元测试的地步,这意味着我必须能够创建HttpApplication的新实例、伪造请求并检索响应对象。我该如何对HttpApplication对象进行单元测试?我目前正在使用Moq,但我不知道如何设置所需的模拟对象。 最佳答案 不幸的是,这并不是特别容易做到,因为HttpApplication不适合很容易地进行模拟;没有可模拟的接口(interface),并且大多数方法未标记为虚拟。我最近遇到了与HttpRequest和HttpWe

c# - 在 Xunit 中处理多个测试用例的首选方法是什么?

我已经从NUnit迁移到使用Xunit进行单元测试。使用NUnit,我将创建一个方法,其中包含具有相同结果的多个测试用例。例如,下面的NUnit单元测试测试类构造函数的验证,特别是“name”变量。名称不能为null、空或空格。该测试检查是否正确抛出ArgumentNullException:[Test][TestCase(null)][TestCase("")][TestCase("")][ExpectedException(typeof(ArgumentNullException))]publicvoidConstructor_InvalidName_ExceptionThrown

c# - 我该如何设置(最小起订量设置)

我想测试返回用户密码问题的代码部分。因此,我使用Moq制作了成员(member)提供程序的模型。我认为我不需要向您展示实际代码,只需要展示它的测试部分。//ArrangevarmembershipMock=newMock();membershipMock.Setup(m=>m.GetUser("test",false).PasswordQuestion).Returns("Password");authentication.Authenticate.Provider=membershipMock.Object;//Actvaractual=authentication.Password

c# - 如何使用 Moq 修改模拟方法的调用参数?

是否可以修改模拟方法的调用参数?特别是我希望改变buffer在以下示例中为预填充的字节数组。例子:intMockedClass.Read(byte[]buffer,intoffset,intcount)解释:打电话Read负载count从offset读取的字节数到提供的字节数组buffer.现在我想在调用Read之后填充缓冲区已在我的应用程序代码中完成。这可能吗?如果是,我将如何连续调用Read?如果可能的话,我希望连续调用每次都返回不同的缓冲区。编辑:使用Setup像这样的命令:MockedClass.Setup(x=>x.Read(It.IsAny(),It.IsAny(),It.

c# - 测试和模拟私有(private)/ protected 方法。许多帖子,但仍然无法使一个示例起作用

我看过很多关于“Mockingaprivatemethod”的帖子和问题,但仍然无法让它工作,也没有找到真正的答案。让我们忘记代码的味道,你不应该这样做等等......据我所知,我做了以下事情:1)创建了一个类库“MyMoqSamples”2)添加了对Moq和NUnit的引用3)编辑AssemblyInfo文件并添加[装配:InternalsVisibleTo(“DynamicProxyGenAssembly2”)][程序集:InternalsVisibleTo("MyMoqSamples")]4)现在需要测试一个私有(private)方法。因为它是一个私有(private)方法,所以

c# - 单元测试中的不确定性

似乎在许多单元测试中,参数化测试的值要么被烘焙到测试本身,要么以预先确定的方式声明。例如,这是取自nUnit的单元测试(EqualsFixture.cs)的测试:[Test]publicvoidInt(){intval=1;intexpected=val;intactual=val;Assert.IsTrue(expected==actual);Assert.AreEqual(expected,actual);}这具有确定性的优点;如果您运行测试一次,但它失败了,它将继续失败,直到代码被修复。但是,您最终只能测试一组有限的值。不过,我忍不住觉得这是一种浪费;完全相同的测试可能在项目的整