问题标签 [nmock]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
412 浏览

c# - 什么是使用受保护对象 C#(使用 NMock 和 NUnit 框架)为代码编写单元测试的好方法

为包含其他对象的单个类编写单元测试时,最好的使用方法是什么

模拟对象以避免依赖于其他类的测试。

示例 1:

我宁愿不公开受保护的值来为代码创建单元测试。包装类将

为测试工作,但有更好的方法吗?

示例 2:

与上面的示例类似,但 ojbect 是在我调用的方法中创建的。

示例 3:

当 MethodA 仅用作委托时,有没有办法测试它?

0 投票
2 回答
1801 浏览

c# - 无法对继承对象的属性使用 nMock GetProperty 例程

尝试对从 MembershipUser 继承的我模拟的对象设置期望时出现此错误:

ContactRepositoryTests.UpdateTest:FailedSystem.InvalidProgramException:JIT 编译器遇到内部限制。

服务器堆栈跟踪:在 MockObjectType1.ToString()

在 [0] 处重新抛出异常:在 System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(ref MessageData msgData, Int32 type) 在 System.Object NMock2.Internal.ExpectationBuilder.On(对象接收器)处的 .ToString()

这是我正在使用的工具...

VS2008 (SP1) 框架 3.5 nUnit 2.4.8 nMock 2.0.0.44 Resharper 4.1

我不知道为什么会发生这种情况。任何帮助,将不胜感激。

测试班...

用户类...

地址类...

地址存储库类...

数据地址类...

0 投票
2 回答
1155 浏览

c# - C# Noob - 在模拟接口类中触发事件 - 此代码如何工作?

我对这里发生的事情有点困惑。我正在查看 Atomic Object 中的 Puzzle 示例,展示如何测试 Model-View-Presenter 模式Puzzle.zip

视图有一个私人事件。该视图还有一个订阅(delegate) 函数,用于将委托添加到事件中。Presenter 在 IView 和 IModel 中传递。在构建期间,它订阅视图并将其连接到模型上的函数。

为了对 Presenter 进行单元测试,使用 NMock 模拟 View 类。所以它只是一个愚蠢的类,Subscribe() 函数实际上并没有做任何事情。当然,要测试presenter,你必须模拟视图和模型,然后在视图中触发事件并确保调用了模型函数。示例代码工作得很好 - 但是,我不明白它是如何工作的!

部分摘录:

不知何故,“触发器(点)”调用实际上连接到视图,并导致视图中的私有事件触发。我不知道它是如何工作的——我看不到它与视图实例的连接位置。我错过了什么?

更新: 我正在尝试使用 NMock 2。看来 moveRequestConstraint 变量接收到在 TestSetup 函数中传递给 SubscribeMoveRequest() 的值。但是,那是 NMock 1 语法 - 而 NMock 2 似乎不支持该语法。我将如何使用 NMock 2 做到这一点?

0 投票
1 回答
617 浏览

.net - 使用带有 ByRef 参数的 NMock

我必须使用使用大量引用参数的 API。我刚刚开始使用 NMock,但我无法看到如何让 NMock 实际将这些 by-ref 参数之一修改为特定值。我错过了什么,还是只是没有这样做?有没有更好的方法,没有包装这个 API?

0 投票
3 回答
5916 浏览

tdd - 什么时候期待什么时候存根?

我使用 NMock2,并起草了以下 NMock 类来表示一些常见的模拟框架概念:

  • Expect: 这指定了一个模拟方法应该返回什么,并表示调用必须发生或测试失败(当伴随着对 的调用时VerifyAllExpectationsHaveBeenMet())。

  • Stub:这指定了一个模拟方法应该返回什么,但不会导致测试失败。

那么我应该什么时候做呢?

0 投票
2 回答
2045 浏览

c# - 如何在 NMock 中模拟 GetType() 方法

我有一些生产代码,例如

现在我必须为此代码编写单元测试用例。我正在使用 NMock 创建对象。因此,当我传递两个不同类的对象时,它应该转到其他部分。但实际上,因为我正在模拟这两个对象,所以 GetType() 返回两个对象的 MockObject 类型。我怎么解决这个问题。

0 投票
4 回答
11889 浏览

.net - 有没有办法对异步方法进行单元测试?

我在 .NET 平台上使用 Xunit 和 NMock。我正在测试一个方法是异步的表示模型。该方法创建一个异步任务并执行它,因此该方法立即返回并且我需要检查的状态还没有准备好。

我可以在不修改 SUT 的情况下在完成时设置一个标志,但这意味着我将不得不在一个 while 循环中继续检查标志,例如,可能会超时。

我有哪些选择?

0 投票
2 回答
1228 浏览

database - CRUD 应用程序的基本 NMock 数据库示例

我正在寻找一些使用 NMock2 模拟 CRUD 应用程序的数据库调用的基本示例。

谢谢,

克里斯

0 投票
1 回答
1583 浏览

c# - 列表的 NMock 问题

我使用 NMock 进行了以下测试,但失败了。它曾经在将服务调用的结果传递给视图时工作,但现在由于结果转换为 dto 而失败。

我认为这可能意味着我需要创建一个自定义匹配器,但我不确定。有没有人有任何想法?

错误信息:

预期:1 次:projectView.SetProjects(equal to ) [调用 0 次]。

代码:

0 投票
2 回答
2605 浏览

unit-testing - NMock - 怎么说期望这些参数有“任何价值”?还是我不应该这样做?

我有一个快速的问题,我无法在有关 NMock2.0 的文档中弄清楚。

我有一个名为 Save() 的函数,我想模拟它。这需要一个字符串 ID 作为参数和一个小数作为值..

我知道我可以编写此代码以确保使用 2 个特定值调用 Save():

但这只有在“foo”和 1 被通过时才会通过。我确实可以控制值“foo”,但是对于第二个值,我不知道它会是什么;或者我不关心至少在这个特定的测试中测试它的价值。

我知道我可以写:

但这将使我能够通过任何争论;所以如果 Save 界面发生变化,后来需要 5 个参数,我的测试仍然会通过。

我怎样才能确保它只需要 2 个参数,以及它们的正确类型?

也许更重要的是——写这样的单元测试太脆弱了吗?也许我应该对其进行编码以期望任何参数,以便每次我重构时都不必回来更改该行?我发现我使用大量模拟的测试用例非常脆弱,每当我重构时,我都必须更改它们......也许我在这里误用了模拟?对这些东西还是很陌生,所以非常感谢任何建议。