moq相关内容

单元测试一个文件上传,如何?

使用 MVC3.NET,我在控制器中有一个文件上传方法,该方法适用于以下签名 public ActionResult UploadFile(IEnumerable file) 如何使用 NUnit 进行单元测试?我环顾四周,似乎每个人都指向 Moq,但我是单元测试新手,无法让 Moq 正常工作. 我发现了一些有趣的博客,例如:http://dan ..
发布时间:2022-01-09 23:14:34 其他开发

使用 Moq 模拟惰性接口

我想要模拟惰性接口,但我得到 object reference not set to an instance of an object 异常. ‌这是正在测试的课程: 公共类 ProductServiceService : IProductServiceService{私有只读 Lazy_存储库;私有只读 Lazy ..
发布时间:2022-01-08 22:27:49 C#/.NET

使用 moq 模拟 HttpContext 进行单元测试

我需要一个 HttpContext 模拟来进行单元测试.但我正在为此苦苦挣扎. 我正在制作一种方法,可以通过 SessionIdManager 以编程方式更改 sessionId.而 SessionIdManager 需要 HttpContext 而不是 HttpContextBase. 但我找不到任何示例来模拟 HttpContext.所有的例子都只是为了制作 HttpContext ..
发布时间:2022-01-08 22:26:36 C#/.NET

验证使用 Moq 调用受保护方法的次数

在我的单元测试中,我正在使用 Moq 模拟一个受保护的方法,并且想断言它被调用了一定次数.这个问题描述了与早期版本的 Moq 类似的内容: //期望 ChildMethod1() 会被调用一次.(受保护)testBaseMock.Protected().Expect("ChildMethod1").AtMostOnce().Verifiable();...testBase.Verify(); ..
发布时间:2022-01-08 22:25:06 C#/.NET

我可以让 Moq 为模拟类添加属性吗?

我正在为我的项目编写一个命令行界面.用户输入“create project foo",找到负责“project"的控制器,然后调用Create方法,传入“foo"作为第一个参数. 它在很大程度上依赖于属性和反射:控制器看起来像这样: [ControllerFor("project")]类项目控制器{[控制器动作(“创建")]公共对象创建(字符串项目名称){/* ... */}} 我想在解 ..
发布时间:2022-01-08 22:24:57 C#/.NET

在 Moq 中模拟被测主题的方法?

我想测试我班级的方法 A,但不调用通常由 A 调用的实际方法 B.这是因为 B 有很多外部交互,我现在不想测试. 我可以为 B 调用的所有服务创建模拟,但这是相当多的工作.我宁愿只是模拟 B 并让它返回示例数据. 这可能与 Moq 框架有关吗? 解决方案 是的,有一个问题!您必须确保方法 B 是虚拟的并且可以被覆盖. 然后,将模拟设置为在未提供设置时调用基本方法.然后你设 ..
发布时间:2022-01-08 22:24:41 C#/.NET

似乎无法起订量 EF CodeFirst 4.1.帮助任何人?

我的任务是评估 codeFirst 并可能用于我们未来的所有项目.评估基于将 codeFirst 与现有数据库一起使用. 想知道是否可以使用 codeFirst 4.1 模拟存储库.(无假货) 这个想法是将一个存储库注入到服务中,然后对存储库进行起订量. 我一直在网上找,但我只找到了一个使用假货的例子.我不想使用假货我想使用起订量. 我认为我的问题出在 DAL 的架构上.( ..

使用 moq 模拟虚拟只读属性

我找不到这样做的方法,虽然这可以手动完成,那为什么不使用 moq 呢? 解决方案 给定这个类 公共抽象类 MyAbstraction{公共虚拟字符串 Foo{得到{返回“富";}}} 您可以像这样设置 Foo(只读属性): var stub = new Mock();stub.SetupGet(x => x.Foo).Returns("bar"); stub.Object.Foo ..
发布时间:2022-01-08 22:21:53 其他开发

将 Pex 与 MoQ 集成

谁能指出一个资源,该资源显示了如何将 Pex 与 MoQ 结合使用的示例?谢谢 解决方案 Pex 使用 Moles 进行隔离(模拟).人们仍然可以将 MoQ 与 Moles 一起使用.实际上,当代码允许时,最好使用像 MoQ 这样的框架来进行存根和模拟,只为 MoQ 无法隔离的东西(密封类、非虚拟方法、私有成员等)留下 Moles. 为了支持我的陈述,Peli de Halleux( ..
发布时间:2022-01-08 22:21:46 其他开发

为什么我们需要模拟框架?

我使用过编写了 NUnit 测试的代码.但是,我从未使用过模拟框架.这些是什么?我了解依赖注入以及它如何帮助提高可测试性.我的意思是在单元测试时可以模拟所有依赖项.但是,那为什么我们需要模拟框架呢?我们不能简单地创建模拟对象并提供依赖项.我在这里错过了什么吗?谢谢. 解决方案 它使模拟更容易 他们通常让你表达可测试提到的断言对象之间的交互. 这里有一个例子: var extens ..
发布时间:2022-01-08 22:20:27 C#/.NET

嘲讽的目的

嘲笑的目的是什么? 我一直在关注一些使用 NUnit 进行测试和 Moq 进行模拟的 ASP.NET MVC 教程.不过,我对其中的嘲弄部分有点不清楚. 解决方案 模拟的目的是将被测试的类与其他类隔离. 这在上课时很有帮助: 连接到外部资源(文件系统、数据库、网络...) 设置成本高昂,或尚不可用(正在开发硬件) 减慢单元测试的执行速度 具有不确定的行为 拥有(或 ..
发布时间:2022-01-08 22:19:08 其他开发

“短路"Moq 的无效方法?

我的团队最近决定使用 Moq 作为我们的模拟框架,因为它具有极大的灵活性和高度可读的语法.由于我们是新手,所以我在看似简单的问题上绊倒了——搜索(这里,谷歌等)发现很多关于起订量其他细微差别的讨论,但不一定是我所追求的,并且几个看似相关的问题变成了红鲱鱼. 我们正在测试一个具有外部依赖项的类(准确地说是 Amazon SimpleDb),但不希望我们的测试绑定到实时连接.一种特殊的方法: ..
发布时间:2022-01-08 22:17:18 C#/.NET

在单元测试中模拟 IMemoryCache

我正在使用 asp net core 1.0 和 xunit. 我正在尝试为一些使用 IMemoryCache 的代码编写单元测试.但是,每当我尝试在 IMemoryCache 中设置一个值时,我都会收到 Null 引用错误. 我的单元测试代码是这样的: IMemoryCache 被注入到我要测试的类中.但是,当我尝试在测试中的缓存中设置一个值时,我得到一个空引用. 公共测试 Ge ..
发布时间:2022-01-08 22:17:13 C#/.NET

如何模拟 Web 服务

我是否必须重写我的代码才能在接口中执行此操作?或者有没有更简单的方法?我正在使用起订量 解决方案 我通常做的是围绕我的 Web 服务构建一个包装器或适配器,然后模拟它. 例如: 公共类ServiceAdapter:IServiceAdapter{公共无效 CallSomeWebMethod(){var someService = new MyWebService();someSer ..
发布时间:2022-01-08 22:16:25 C#/.NET

异步方法返回 null

如果我尝试模拟包含 async 方法的类型,例如: 接口 Foo{任务酒吧();} 然后 mock 的 Bar 方法返回 null.我猜 Moq 选择 default(Task) 作为我的方法的默认返回值,这确实是 null.然而,起订量应该选择像 Task.FromResult(default(int)) 这样的东西作为默认值.我可以强制 Moq 使异步方法返回非空任务吗 ..
发布时间:2022-01-08 22:15:48 C#/.NET

模拟对象 - 设置方法 - 测试驱动开发

我正在学习测试驱动开发并尝试使用 Moq 库进行模拟.Mock类的Setup方法的作用是什么? 解决方案 Moq Mock 对象的默认行为是存根所有方法和属性.这意味着使用任何参数对该方法/属性的调用都不会失败,并将返回特定返回类型的默认值. 您出于以下任何或所有原因调用 Setup 方法: 您想限制方法的输入值. 公共接口 ICalculator {整数总和(int v ..
发布时间:2022-01-08 22:14:22 其他开发

Moq 和 Rhino.mocks 的功能是什么?

我找不到 Moq 和 Rhino 的具体功能比较.所有的问题都是“你更喜欢哪个以及为什么",或者“这是你如何在 rhino 中做一个简单的模拟以及它是如何在 moq 中完成的". 我在任何地方都找不到深度比较.我知道语法差异,我不是在寻找答案.我正在寻找能力比较.例如: Rhino 有 Expect.On() 用于线程嘲笑.起订量可以吗? Multi-mocking 怎么样(实现 ..
发布时间:2022-01-08 22:11:55 其他开发