草庐IT

nsubstitute

全部标签

c# - 模拟 Excel.worksheet 时如何避免使用动态?

我正在尝试使用NSubstitute或其他模拟框架和MSTest(VisualStudio2010)模拟Excel电子表格。我不确定是否有比这更好的方法——这对测试来说不太有效:这是一个例子(现在都是原型(prototype)代码,不是很干净):int[]lowerBounds={1,1};int[]lengths={2,2};//Initializea1-basedarraylikeExceldoes:object[,]values=(object[,])Array.CreateInstance(typeof(object),lengths,lowerBounds);values[1

c# - NSubstitute - TestFixture 1 在 TestFixture 2 中导致 AmbiguousArgumentsException

我正在使用NUnit和NSubstitute编写C#单元测试。我正在测试一个类,该类将尝试从实现以下接口(interface)的配置提供程序中检索对象:publicinterfaceIConfigProvider{TGetConfig(intid);TGetConfig(stringid);}被测类只使用GetConfig的int版本所以在SetUpFixture中,我执行以下操作来设置一个模拟的配置提供程序,它将始终返回相同的虚拟对象:IConfigProviderconfigProvider=Substitute.For>();configProvider.GetConfig(Ar

c# - NSubstitute 模拟一个没有参数的 void 方法

我是NSubstitute的新手,我正在尝试使用2个out参数模拟一个void方法,我很确定我做错了。我有一个CustomerDataAccess类,它的方法具有以下签名:voidGetCustomerWithAddresses(intcustomerId,outListcustomers,outListaddresses);CustomerRepository调用其GetCustomer方法,然后调用CustomerDataAccess.GetCustomerWithAddressesDAL方法。DAL方法然后输出两个out参数,一个用于客户,一个用于地址。存储库方法然后使用Auto

c# - NSubstitute - 模拟在返回任务的方法中抛出异常

使用NSubstitute,如何模拟在返回任务的方法中抛出的异常?假设我们的方法签名看起来像这样:Task>GetAllAsync();下面是NSubstitute文档如何模拟非void返回类型的抛出异常。但这不编译:(myService.GetAllAsync().Returns(x=>{thrownewException();});那么你是如何做到这一点的呢? 最佳答案 实际上,接受的答案模拟了一个被抛出的同步异常,这不是真正的async行为。正确的mock方式是:varmyService=Substitute.For();my

c# - 如何使用 Autofixture 创建和填充模拟类?

目前我正在使用EF6在UnitOfWork中实现我的存储库。我还创建了一个内存中模拟实现(MockUnitOfWork&MockRepository),以便我可以在单元测试中使用它们,但是我现在必须处理对象的繁琐设置。这不是Autofixture的设计目的吗?我将如何获得可以在我的测试中使用的MockUnitOfWork,其中包含已填充的Foo和Barr存储库?我正在使用NSubstitute作为我的模拟框架。工作单元publicinterfaceIUnitOfWork{voidSave();voidCommit();voidRollback();IRepositoryFooRepos

c# - 是否建议模拟具体类(class)?

mockingframework网站给出的例子大部分是模拟接口(interface)。比方说我目前正在使用的NSubstitute,他们所有的模拟示例都是模拟接口(interface)。但实际上,我看到了一些开发人员模拟的具体类。是否建议模拟具体类? 最佳答案 理论上模拟一个具体的类是绝对没有问题的;我们正在针对逻辑接口(interface)(而不是关键字interface)进行测试,并且该逻辑接口(interface)是由class还是interface。在实践中,.NET/C#使这有点问题。正如您提到的.NET模拟框架,我假设您

c# - 是否建议模拟具体类(class)?

mockingframework网站给出的例子大部分是模拟接口(interface)。比方说我目前正在使用的NSubstitute,他们所有的模拟示例都是模拟接口(interface)。但实际上,我看到了一些开发人员模拟的具体类。是否建议模拟具体类? 最佳答案 理论上模拟一个具体的类是绝对没有问题的;我们正在针对逻辑接口(interface)(而不是关键字interface)进行测试,并且该逻辑接口(interface)是由class还是interface。在实践中,.NET/C#使这有点问题。正如您提到的.NET模拟框架,我假设您

c# - 如何将 AutoFixture 与 NSubstitute 结合使用的示例

我经常使用NSubstitute。我喜欢它。我只是在研究AutoFixture。看起来不错!我看过AutoFixtureforNSubstitute并在Moq中看到了一些关于如何使用此功能的示例。但我似乎无法将其翻译成NSubstitute。我试过这个:varfixture=newFixture().Customize(newAutoNSubstituteCustomization());varaddDest=Substitute.For();使用:publicinterfaceIPersonEntity{intID{get;set;}stringFirstName{get;set;}

c# - NSubstitute - 收到异步 - “call is not awaited” 警告

我正在尝试验证是否使用正确的参数调用了异步方法。但是,我收到警告:“由于未等待此调用,因此在调用完成之前继续执行当前方法。考虑将‘await’运算符应用于调用结果”。此警告出现在//Assert注释下方的代码行中(如下)。我使用NSubstitute的测试如下:[Test]publicasyncTaskSimpleTests(){//Arrangevarrequest=CreateUpdateItemRequest();databaseHelperSub.ExecuteProcAsync(Arg.Any()).Returns(Task.FromResult((object)null))

c# - NSubstitute DbSet/IQueryable<T>

所以EntityFramework6比以前的版本更容易测试。还有someniceexamples在互联网上寻找像Moq这样的框架,但情况是,我更喜欢使用NSubstitute。我已经将“非查询”示例翻译为使用NSubstitute,但我无法理解“查询测试”。最小起订量如何items.As>().Setup(m=>m.Provider).Returns(data.Provider);翻译成NSubstitute?我想像((IQueryable)items).Provider.Returns(data.Provider);但这没有用。我也试过items.AsQueryable().Prov
12