moq相关内容

使用 Moq 模拟对 MySQL 数据库的插入查询

我目前正在尝试使用 Moq 学习 Mocking,并且我想在我拥有的现有数据库上尝试它,但是我不确定如何正确处理这个问题. 在我的数据层中,我有一个处理连接到数据库的类,并具有用于插入、选择等的各种方法.我想测试一个演员是否正确插入到数据库中. 我的 Insert 方法目前如下所示: public void Insert(string firstname, string lastna ..
发布时间:2022-01-08 22:10:03 C#/.NET

使用 MOQ 设置和退货的正确方法

我是 MOQ 新手,我对设置方法有点困惑.下面的示例显示了我需要测试的一种方法.被测方法返回两个日期的最新时间,因此我创建了两个 datetime 对象并将它们传递给我的函数.我感到困惑的部分是返回调用.这忽略了我的方法中的逻辑并返回我告诉它的内容.例如,如果我说返回(date2),那么无论逻辑如何,断言都会通过.我做错了吗? public virtual DateTime LatestTime ..
发布时间:2022-01-08 22:09:37 C#/.NET

需要一些建议来尝试模拟 .NET WebClient 或等效项

我有一些代码可以下载一些 RSS 源. 我一直在使用 WebClient 或 Argotic.Syndication.RssFeed 库. 但这些不是可模拟的 :( 我绝对不想每次运行单元测试时都点击真正的 RSS 提要. 有人对我能做什么有任何建议吗? 我需要创建一个邪恶的包装器吗?如果是这样.. 对此有何建议? 解决方案 我会为每个外部依赖项创建一个包装器 ..
发布时间:2022-01-08 22:04:47 C#/.NET

Moq It.Is<>不匹配

这段代码: hub.MockedUserRepository.Setup(r => r.Update(It.IsAny())).Callback((ControllUser usr) => Console.WriteLine("NULL = " + (usr.Zombies[0].ConnectionId == null))).Verifiable(); 将打印 NULL = 真 ..
发布时间:2022-01-08 22:02:17 C#/.NET

模拟一个抛出异常(moq)的方法,但在其他方面表现得像被模拟的对象?

我有一个 Transfer 类,简化后如下所示: 公共类转移{公共虚拟 IFileConnection 源 { 获取;放;}公共虚拟 IFileConnection 目的地 { 获取;放;}公共虚拟无效GetFile(IFileConnection连接,字符串远程文件名,字符串本地文件名){connection.Get(remoteFilename, localFilename);}公共虚拟 v ..
发布时间:2022-01-08 21:59:54 C#/.NET

最小起订量中的设置序列

我想要一个第一次返回 0 的模拟,然后在此后调用该方法的任何时候返回 1.问题是如果方法被调用4次,我得写: mock.SetupSequence(x => x.GetNumber()).返回(0).返回(1).返回(1).返回(1); 否则,该方法返回null. 有什么办法可以写,在初始调用之后,方法返回1? 解决方案 这不是特别花哨,但我认为它会工作: var first ..
发布时间:2022-01-08 21:56:40 C#/.NET

为什么 DbContext 不实现 IDbContext 接口?

为什么Entity Framework中没有IDbContext接口?如果有一个现有接口,其中包含 SaveChanges() 等方法,您可以从中派生您的自定义数据库上下文接口,那么测试事情会不会更容易? 公共接口 ICustomDbContext : IDbContext{//将实体集属性添加到 IDbContext 中的现有方法集IDbSet一些实体{得到;}} 解 ..
发布时间:2022-01-08 21:56:33 其他开发

使用 Moq 实现 IQueryable 的模拟类

我花了一个晚上试图模拟一个实现 IQueryable 的对象: 公共接口IRepo;: 可查询{} 我能想到的最好的方法是这样的: var items = new Item[] {}.AsQueryable();var repo = new Mock();repo.Setup(r => r.GetEnumerator()).Returns(items.GetEnumerator()); ..
发布时间:2022-01-08 21:56:09 C#/.NET

起订量,严格与宽松使用

在过去,我只使用 Rhino Mocks,具有典型的严格模拟.我现在正在与 Moq 合作开展一个项目,我想知道如何正确使用. 假设我有一个带有方法 Bar 的对象 Foo,它在对象 Buzz 上调用 Bizz 方法. 在我的测试中,我想验证是否调用了 Bizz,因此我觉得有两种可能的选择: 严格的模拟 var mockBuzz=new Mock(MockBehavior.Str ..
发布时间:2022-01-08 21:55:19 C#/.NET

在 VB.Net 中使用 moq 的经验

我真的很喜欢 moq 模拟框架.我已经在几个项目中使用过它.不幸的是,我的一位客户要求我们使用 VB.Net.不是我的偏好,但是嘿,.Net 就是 .Net,对吧? 我听说 moq 与 VB 有一些问题.这是真的?是这样,什么样的麻烦?鉴于 .Net 的语言不可知性,我希望它能够正常工作. 我是否应该考虑使用其他一些与 VB 一起使用的模拟框架? 解决方案 VB.net 在 m ..
发布时间:2022-01-08 21:53:21 其他开发

使用 Moq 模拟内部类以进行单元测试

假设我有一个类“ClassA",它依赖于一个类“ClassB"(注入到 ClassA 的构造函数中).我想模拟 ClassB 以便我可以单独测试 ClassA.这两个类都是内部的. 如果我错了,请纠正我,但看起来 Moq 只能模拟一个类,如果它是公共的,它有一个公共的无参数构造函数,并且要模拟的方法是 public virtual.我真的不想让这些课程公开可见.我是否缺少 Moq 的某些东西 ..
发布时间:2022-01-08 21:50:35 其他开发

验证方法被调用

使用起订量时,我遇到了一个非常奇怪的问题,即只有当我设置的方法是公开的时,模拟上的设置似乎才有效.我不知道这是 Moq 错误还是我只是有这个错误(Moq 的新手).这是测试用例: 公共类TestClass{公共字符串说(){返回你好();}内部虚拟字符串 Hello(){返回 "";}}[测试方法]公共无效 Say_WhenPublic_CallsHello(){模拟模拟 ..
发布时间:2022-01-08 21:49:51 C#/.NET

起订量并抛出 SqlException

我有以下代码来测试当某个名称被传递给我的方法时,它会抛出一个 SQL 异常(这是有原因的,虽然听起来有点奇怪). mockAccountDAL.Setup(m => m.CreateAccount(It.IsAny(),“显示名称 2",It.IsAny())).Throws(); 但是,这不会编译,因为 SqlException 的构造函数是内部的: 'System.Data.Sql ..
发布时间:2022-01-08 21:48:48 C#/.NET

如何验证使用 Moq 仅调用了一次方法?

如何验证使用 Moq 的方法只调用了一次?Verify() 与 Verifable() 的事情确实令人困惑. 解决方案 你可以使用Times.Once(),或者Times.Exactly(1):p> mockContext.Verify(x => x.SaveChanges(), Times.Once());mockContext.Verify(x => x.SaveChanges(), ..
发布时间:2022-01-08 21:48:24 C#/.NET

模拟 AsNoTracking 实体框架

如何模拟 AsNoTracking 方法? 在下面的示例中,DbContext 已注入服务类.如果我从 GetOrderedProducts 方法中删除 AsNoTracking 扩展方法,它工作正常,但 AsNoTracking 测试失败,因为它返回 null.我还尝试模拟 AsNoTracking 以返回正确的值,但没有成功. 公共接口 IUnitOfWork{IDbSet设置 ..
发布时间:2022-01-08 21:42:44 C#/.NET