moq相关内容
我目前正在尝试使用 Moq 学习 Mocking,并且我想在我拥有的现有数据库上尝试它,但是我不确定如何正确处理这个问题. 在我的数据层中,我有一个处理连接到数据库的类,并具有用于插入、选择等的各种方法.我想测试一个演员是否正确插入到数据库中. 我的 Insert 方法目前如下所示: public void Insert(string firstname, string lastna
..
我是 MOQ 新手,我对设置方法有点困惑.下面的示例显示了我需要测试的一种方法.被测方法返回两个日期的最新时间,因此我创建了两个 datetime 对象并将它们传递给我的函数.我感到困惑的部分是返回调用.这忽略了我的方法中的逻辑并返回我告诉它的内容.例如,如果我说返回(date2),那么无论逻辑如何,断言都会通过.我做错了吗? public virtual DateTime LatestTime
..
我有一些代码可以下载一些 RSS 源. 我一直在使用 WebClient 或 Argotic.Syndication.RssFeed 库. 但这些不是可模拟的 :( 我绝对不想每次运行单元测试时都点击真正的 RSS 提要. 有人对我能做什么有任何建议吗? 我需要创建一个邪恶的包装器吗?如果是这样.. 对此有何建议? 解决方案 我会为每个外部依赖项创建一个包装器
..
这段代码: hub.MockedUserRepository.Setup(r => r.Update(It.IsAny())).Callback((ControllUser usr) => Console.WriteLine("NULL = " + (usr.Zombies[0].ConnectionId == null))).Verifiable(); 将打印 NULL = 真
..
我正在使用 Moq &NUnit 作为单元测试框架. 我写了一个方法,它以 NetworkStream 对象作为参数: public static void ReadDataIntoBuffer(NetworkStream networkStream, Queue dataBuffer){if ((networkStream != null) && (dataBuffer != null)
..
我有一个 Transfer 类,简化后如下所示: 公共类转移{公共虚拟 IFileConnection 源 { 获取;放;}公共虚拟 IFileConnection 目的地 { 获取;放;}公共虚拟无效GetFile(IFileConnection连接,字符串远程文件名,字符串本地文件名){connection.Get(remoteFilename, localFilename);}公共虚拟 v
..
如何在 Moq 中做到这一点? Foo bar = new Foo();Fake(bar.PrivateGetter).Return('whatever value') 似乎我只能找到如何模拟通过框架创建的对象.我只想在我创建的具体对象上模拟一个方法/属性. 在 TypeMock 中,我只需要 Isolate.WhenCalled(bar.PrivateGetter).Returns('
..
我想要一个第一次返回 0 的模拟,然后在此后调用该方法的任何时候返回 1.问题是如果方法被调用4次,我得写: mock.SetupSequence(x => x.GetNumber()).返回(0).返回(1).返回(1).返回(1); 否则,该方法返回null. 有什么办法可以写,在初始调用之后,方法返回1? 解决方案 这不是特别花哨,但我认为它会工作: var first
..
为什么Entity Framework中没有IDbContext接口?如果有一个现有接口,其中包含 SaveChanges() 等方法,您可以从中派生您的自定义数据库上下文接口,那么测试事情会不会更容易? 公共接口 ICustomDbContext : IDbContext{//将实体集属性添加到 IDbContext 中的现有方法集IDbSet一些实体{得到;}} 解
..
我花了一个晚上试图模拟一个实现 IQueryable 的对象: 公共接口IRepo;: 可查询{} 我能想到的最好的方法是这样的: var items = new Item[] {}.AsQueryable();var repo = new Mock();repo.Setup(r => r.GetEnumerator()).Returns(items.GetEnumerator());
..
在过去,我只使用 Rhino Mocks,具有典型的严格模拟.我现在正在与 Moq 合作开展一个项目,我想知道如何正确使用. 假设我有一个带有方法 Bar 的对象 Foo,它在对象 Buzz 上调用 Bizz 方法. 在我的测试中,我想验证是否调用了 Bizz,因此我觉得有两种可能的选择: 严格的模拟 var mockBuzz=new Mock(MockBehavior.Str
..
我真的很喜欢 moq 模拟框架.我已经在几个项目中使用过它.不幸的是,我的一位客户要求我们使用 VB.Net.不是我的偏好,但是嘿,.Net 就是 .Net,对吧? 我听说 moq 与 VB 有一些问题.这是真的?是这样,什么样的麻烦?鉴于 .Net 的语言不可知性,我希望它能够正常工作. 我是否应该考虑使用其他一些与 VB 一起使用的模拟框架? 解决方案 VB.net 在 m
..
以下是我的通用基础存储库接口 公共接口IRepository;{可查询AllIncluding(参数表达式 我的实体 公共类SDK{公共 SDK(){this.Identifier = Guid.NewGuid().ToString();}公共虚拟ICollection可访问资源 { 获取;放;}公共字符串标识符 { 获取;放;}} 以下是具体的repo 公共接
..
假设我有一个类“ClassA",它依赖于一个类“ClassB"(注入到 ClassA 的构造函数中).我想模拟 ClassB 以便我可以单独测试 ClassA.这两个类都是内部的. 如果我错了,请纠正我,但看起来 Moq 只能模拟一个类,如果它是公共的,它有一个公共的无参数构造函数,并且要模拟的方法是 public virtual.我真的不想让这些课程公开可见.我是否缺少 Moq 的某些东西
..
使用起订量时,我遇到了一个非常奇怪的问题,即只有当我设置的方法是公开的时,模拟上的设置似乎才有效.我不知道这是 Moq 错误还是我只是有这个错误(Moq 的新手).这是测试用例: 公共类TestClass{公共字符串说(){返回你好();}内部虚拟字符串 Hello(){返回 "";}}[测试方法]公共无效 Say_WhenPublic_CallsHello(){模拟模拟
..
我有以下代码来测试当某个名称被传递给我的方法时,它会抛出一个 SQL 异常(这是有原因的,虽然听起来有点奇怪). mockAccountDAL.Setup(m => m.CreateAccount(It.IsAny(),“显示名称 2",It.IsAny())).Throws(); 但是,这不会编译,因为 SqlException 的构造函数是内部的: 'System.Data.Sql
..
如何验证使用 Moq 的方法只调用了一次?Verify() 与 Verifable() 的事情确实令人困惑. 解决方案 你可以使用Times.Once(),或者Times.Exactly(1):p> mockContext.Verify(x => x.SaveChanges(), Times.Once());mockContext.Verify(x => x.SaveChanges(),
..
我想我可能对 Moq 回调方法的语法有些困惑.当我尝试做这样的事情时: IFilter filter = new Filter();列出对象 = 新列表{ 新的 Foo(),新的 Foo() };IQueryable myFilteredFoos = null;mockObject.Setup(m => m.GetByFilter(It.IsAny())
..
您好,当我看到这段代码时,我已经使用 moq 有一段时间了. 我必须在我的一个回购中设置回报. mockIRole.Setup(r => r.GetSomething(It.IsAny(), It.IsAny(),It.IsAny())).Returns(ReturnSomething); 我有三个参数,我只是在网上的一篇文章或博客中看到这些. It.Is 或 It.IsAn
..
如何模拟 AsNoTracking 方法? 在下面的示例中,DbContext 已注入服务类.如果我从 GetOrderedProducts 方法中删除 AsNoTracking 扩展方法,它工作正常,但 AsNoTracking 测试失败,因为它返回 null.我还尝试模拟 AsNoTracking 以返回正确的值,但没有成功. 公共接口 IUnitOfWork{IDbSet设置
..