我正在为使用mongoDBc#驱动程序的DAL创建一些单元测试。问题是我有这个方法要测试:publicasyncvirtualTask>GetAsync(Expression>predicate){return(awaitCollection.FindAsync(predicate)).ToList();}并使用Moq我像这样mock这个集合:varmockMongoCollectionAdapter=newMock>();varexpectedEntities=newList{mockEntity1.Object,mockEntity2.Object};mockMongoCollec
我目前正在尝试使用Moq学习Mocking,我想在我现有的数据库上尝试一下,但是我不确定如何才是正确的方法。在我的数据层中,我有一个处理连接到数据库的类,并具有用于插入、选择等的各种方法。我想测试一个Actor是否被正确插入到数据库中。我的Insert方法目前看起来像这样:publicvoidInsert(stringfirstname,stringlastname){stringquery=$"INSERTINTO`sakila`.`actor`(`first_name`,`last_name`)VALUES('"+firstname+"','"+lastname+"')";Cons
如何模拟AsNoTracking方法?在下面的示例中,DbContext已注入(inject)服务类。如果我从GetOrderedProducts方法中删除AsNoTracking扩展方法,它工作正常,但AsNoTracking测试失败,因为它返回null。我也尝试模拟AsNoTracking以返回正确的值,但它没有用。publicinterfaceIUnitOfWork{IDbSetSet()whereTEntity:class;intSaveAllChanges();}publicclassEntites:DbContext,IUnitOfWork{publicvirtualDbS
如何模拟AsNoTracking方法?在下面的示例中,DbContext已注入(inject)服务类。如果我从GetOrderedProducts方法中删除AsNoTracking扩展方法,它工作正常,但AsNoTracking测试失败,因为它返回null。我也尝试模拟AsNoTracking以返回正确的值,但它没有用。publicinterfaceIUnitOfWork{IDbSetSet()whereTEntity:class;intSaveAllChanges();}publicclassEntites:DbContext,IUnitOfWork{publicvirtualDbS
我目前对如何模拟感到困惑。我正在使用最小起订量。为了模拟对象我通常这样写varmockIRepo=newMock();但是,我需要为我的设置创建模拟对象。选项1以这种方式模拟仅包含属性的对象是否更好?varobject=Mock.Of()选项2或者这样varobject=newMock()我读到选项2有设置属性,这对我来说有点疑问,因为我也可以在选项1中设置属性。那有什么区别呢?或者有更好的方法吗? 最佳答案 这篇文章帮助我理解了Mock.Of:OldstyleimperativeMockvsfunctionalMock.Of正如帖
我目前对如何模拟感到困惑。我正在使用最小起订量。为了模拟对象我通常这样写varmockIRepo=newMock();但是,我需要为我的设置创建模拟对象。选项1以这种方式模拟仅包含属性的对象是否更好?varobject=Mock.Of()选项2或者这样varobject=newMock()我读到选项2有设置属性,这对我来说有点疑问,因为我也可以在选项1中设置属性。那有什么区别呢?或者有更好的方法吗? 最佳答案 这篇文章帮助我理解了Mock.Of:OldstyleimperativeMockvsfunctionalMock.Of正如帖
我有一些代码可以下载一些RSS提要。我一直在使用WebClient或Argotic.Syndication.RssFeed库。但这些不是可模拟的:(我绝对不想每次运行单元测试时都访问真正的RSS提要。有人对我能做什么有什么建议吗?我需要创建一个邪恶的包装器吗?如果是这样..对此有何建议? 最佳答案 DoesanyonehaveanysuggestionstowhatIcando?抽象接口(interface)背后的实际HTTP调用。然后使用WebClient编写此接口(interface)的实现。现在让您的主类将此接口(interf
我有一些代码可以下载一些RSS提要。我一直在使用WebClient或Argotic.Syndication.RssFeed库。但这些不是可模拟的:(我绝对不想每次运行单元测试时都访问真正的RSS提要。有人对我能做什么有什么建议吗?我需要创建一个邪恶的包装器吗?如果是这样..对此有何建议? 最佳答案 DoesanyonehaveanysuggestionstowhatIcando?抽象接口(interface)背后的实际HTTP调用。然后使用WebClient编写此接口(interface)的实现。现在让您的主类将此接口(interf
在AutoMapper中为Map函数设置模拟期望的最佳方法是什么。我提取了IMapper接口(interface),这样我就可以为该接口(interface)设置期望值。我的映射器有依赖项,所以我必须将它们传递给映射器。当我使用2个不同的依赖项实现创建2个映射器类实例时会发生什么?我假设两个映射器将使用相同的依赖实例,因为AutoMapper映射是静态的。或者AutoMapper甚至可能会抛出异常,因为我尝试使用相同的对象设置2个不同的map。?解决这个问题的最佳方法是什么?publicinterfaceIMapper{TTargetMap(TSourcesource);voidVal
在AutoMapper中为Map函数设置模拟期望的最佳方法是什么。我提取了IMapper接口(interface),这样我就可以为该接口(interface)设置期望值。我的映射器有依赖项,所以我必须将它们传递给映射器。当我使用2个不同的依赖项实现创建2个映射器类实例时会发生什么?我假设两个映射器将使用相同的依赖实例,因为AutoMapper映射是静态的。或者AutoMapper甚至可能会抛出异常,因为我尝试使用相同的对象设置2个不同的map。?解决这个问题的最佳方法是什么?publicinterfaceIMapper{TTargetMap(TSourcesource);voidVal