问题标签 [mocking]

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 回答
789 浏览

unit-testing - 除了正在测试的方法之外,我可以(或应该)模拟正在测试的对象上的方法吗?

我有这样的课:

我对 MethodA 进行了测试,并想测试 MethodB,但我想做的只是验证 MethodA 是否返回 true 是否发生了某些事情,如果 MethodA 返回 false 是否发生了其他事情。我可以用 Rhino Mocks 做到这一点吗?或者我是否必须设置我在 MethodA 测试中已经拥有的所有相同的模拟?

0 投票
2 回答
773 浏览

unit-testing - 单元测试站点地图节点

有谁知道如何对 SiteMapNode 进行单元测试?我们正在构建一些自定义导航控件,它使用自定义属性从站点地图呈现无序的 html 列表。

我正在尝试遵循测试优先的方法,但发现 SiteMapNode 对 HttpContext 具有内部依赖关系。为了遍历站点地图文件,它坚持使用虚拟路径来查找站点地图文件。

我已经构建了一个站点地图,我想对其进行测试,但我不想在 Web 项目中创建我的单元测试环境(!)

有什么建议么?嘲讽?覆盖相关成员?

0 投票
3 回答
7008 浏览

c# - 使用 UI 控件的单元测试方法

我目前正在编写一些对表单控件执行一些基本操作的方法,例如 Textbox、Groupbox,这些操作是通用的,可以在任何应用程序中使用。

我开始编写一些单元测试,只是想知道我应该使用 System.Windows.Forms 中的真实表单控件,还是应该只是模拟我正在尝试测试的部分。例如:

假设我有这个方法,它需要一个控件,如果它是一个文本框,它将像这样清除文本属性:

然后我想测试这个方法,所以我做了这样的事情:

我应该在单元测试中添加对 System.Window.Forms 的引用并使用真正的 Textbox 对象吗?还是我做错了?

注意:上面的代码只是一个例子,我没有编译或运行它。

0 投票
1 回答
1787 浏览

c# - 模拟 COM 对象

我一直在为只能获取和返回字符串的 COM 对象开发一个包装器。COM 对象的接口如下所示:

现在我已经制作了包含如下基本功能的类:

现在我想对这些类进行单元测试,而不必每次都创建真正的 COM 对象,设置世界然后运行测试。所以我一直在研究使用模拟对象,但我对在这种情况下如何使用模拟有点困惑。

我打算使用起订量,所以我这样写了这个测试:

这是模拟我的 COM 对象的正确方法吗?发送到 eval 函数的字符串如何正确?还是我做错了?

0 投票
2 回答
817 浏览

silverlight - 如何模拟来自 Silverlight 的 ADO.Net 数据服务调用

有没有人找到从 Silverlight 应用程序模拟 ADO.Net 数据服务调用的好方法?

数据服务的力量似乎是使用 linq,客户端,而不是实体。但是,在测试进行数据访问的对象时,您如何模拟服务?

一种方法是创建一个完整的模拟数据服务,但随后需要重新创建所有对象。

是否有任何模拟框架可以提供帮助?

0 投票
3 回答
4636 浏览

unit-testing - 如何正确地对我的 DAL 进行单元测试?

我是单元测试的新手。但是如何对使用 Entity Framework 编写的 DAL 进行单元测试,以便确保我的 DAL 代码正常工作但实际上没有触及数据库?有人可以提供尽可能详细的信息吗?

0 投票
8 回答
11473 浏览

unit-testing - 模拟与测试数据库?

早些时候我问过这个问题如何正确地对我的 DAL 进行单元测试?,我没有回答的一件事是,如果要真正测试我的 DAL 是拥有一个测试数据库,那么模拟与测试数据库的作用是什么?

为了补充这一点,另一个人建议“在单元测试结束时使用事务和回滚,所以数据库是干净的”,即测试数据库。你们如何看待这种测试 DAL 的测试 + 测试 DB + 事务回滚(所以 db 不是真正编写的)方法?

完整地说,我的 DAL 是使用实体框架构建的,数据库中没有存储过程。由于 EF 太新了,我真的需要测试 DAL 以确保它们正常工作。

0 投票
10 回答
2976 浏览

unit-testing - 为什么我要编写一个假类并对其进行单元测试?

我了解需要测试具有逻辑的类(例如,可以计算折扣的类),您可以在其中测试实际类。

但我刚刚开始为一个将充当存储库(从数据库获取对象)的项目编写单元测试。我发现自己正在编写一个实现ISomethingRepository接口的“假”存储库。它在内部使用一个Dictionary<Guid, Something>用于存储。它实现了接口的Add(Something)GetById(Guid)方法。

我为什么要写这个?我写的东西在部署时不会被软件实际使用,对吧?我真的看不出这个练习的价值。

我还得到了使用模拟对象的建议,我可以提前设置它来满足某些期望。这对我来说似乎更没有意义:当然测试会成功,我已经模拟/伪造它成功了!而且我仍然不确定实际软件在连接到数据库时是否会正常运行......

使困惑...

有人可以指出正确的方向来帮助我理解这一点吗?

谢谢!

0 投票
5 回答
1768 浏览

c# - 嘲笑傻瓜?

我是新手,我有一个新的 .net Web 项目,它位于 UI->BLL->DAL->DB 结构中,我目前使用 NUnit 进行一些测试。我打算用它来测试中间层,所以我不必实际写入数据库。

现在,我从来没有做过任何模拟,不知道从哪里开始,所以我正在寻找一个有一些端到端示例的模拟框架!有人能指点我一些从头开始的嘲笑材料吗?请提供完整的样本?

谢谢,

射线。

0 投票
3 回答
4282 浏览

c# - 模拟属性 - C#

我在项目中使用自定义属性,我想将它们集成到我的单元测试中。

现在我使用 Rhino Mocks 来创建我的模拟,但我没有看到将我的属性(和那里的参数)添加到它们的方法。

我错过了什么,还是不可能?其他模拟框架?还是我必须使用我的属性创建虚拟实现?

示例:我在插件架构(IPlugin)中有一个接口,并且有一个属性可以将元信息添加到属性。然后我在插件实现中查找具有此属性的属性以进行额外处理(存储其值,标记为 gui 只读...)

现在,当我创建模拟时,我可以轻松地将属性添加到属性或对象实例本身吗?

编辑:我发现了一个有同样问题的帖子 ->链接。答案不是 100%,而是 Java ......

编辑2:可以做到...搜索了更多(关于SO)并找到了2个相关问题(+答案)

这里这里

现在,这是否已经在一个或另一个模拟框架中实现了?