问题标签 [delphi-mocks]

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 投票
1 回答
874 浏览

delphi - 如何使用 Delphi-Mocks 框架在 Delphi 的子类中使用模拟

好的,我一直在使用优秀的Delphi-Mocks 框架,只是遇到了一个问题。假设我有以下接口:

现在,我正在尝试使用 DUnit 和 Delphi-Mocks 测试 Sale 界面,并按如下方式使用它:

所以我的问题是:如何将子模拟添加到现有的模拟接口并调用其方法和属性?

谢谢!PS我正在使用Delphi XE2。

0 投票
1 回答
398 浏览

delphi - 使用 Delphi Mock Framework 并导致副作用

我正在使用相当好的Delphi Mocks框架,并试图创建一个包含具有“副作用”的方法的类的 Mock,即它是一个读取操作,并且在现实世界的实现中它设置内容缓冲区,如果读取成功。所以我的问题是,我如何模拟这种“副作用”?

0 投票
3 回答
1567 浏览

delphi - Delphi-Mocks:在构造函数中模拟带有参数的类

我开始使用Delphi-Mocks框架,并且在模拟一个在构造函数中具有参数的类时遇到了麻烦。TMock 的类函数“Create”不允许参数。如果尝试创建 TFoo.Create( Bar: someType ); 的模拟实例 当 TObjectProxy.Create 时,我得到一个参数计数不匹配;尝试调用 T 的“创建”方法。

显然这是因为以下代码没有将任何参数传递给“Invoke”方法:

我创建了一个确实传递参数的重载类函数:

并且正在使用我所做的有限测试。

我的问题是:

这是一个错误还是我做错了?

谢谢

PS:我知道 Delphi-Mocks 是以接口为中心的,但它确实支持类,而且我正在处理的代码库是 99% 的类。

0 投票
3 回答
841 浏览

delphi - Delphi Mocks – 是否可以在使用“WillReturn”模拟的函数中使用“VAR”或“OUT”排列?

0 投票
1 回答
626 浏览

delphi - 如何使用 Delphi Mocks 框架检查参数的内容?

我正在尝试使用Delphi Mocks框架测试一个创建简单值对象并将它们传递给协作者的类。如何检查这些对象的内容?

代码的大致思路是这样的:

因此,当调用 to 时DoSomethingTSUTClass应该创建几个实例TData并将它们一一传递给Receiver.Process. 我可以验证是否使用此设置进行了正确的调用计数:

但是如何检查Field1和的值Field2是否正确?

0 投票
1 回答
333 浏览

delphi - Delphi 如何模拟事件处理程序,或者在 Delphi 中将接口方法分配为委托?

所以,我有一个带有事件的 Delphi 对象,它是“对过程()的引用”。通常我可以这样做来分配代表。

MyObj.OnBooom := HandleOnBooom;

现在我想对事件是否被调用进行单元测试。所以使用依赖于接口的Delphi Mocks,我将制作一个具有“OnBooom”过程的接口,将接口传递给TMock对象。然后这样做。

MyObj.OnBooom := FMockCaller.Instance.OnBooom;

但这不会编译,因为显然 Delphi 认为,在右侧我只是调用接口的过程,而不是想将其分配给左侧。

那么,有没有办法让这个分配工作?还是有其他方法可以让 Delphi Mocks 活动?谢谢。

0 投票
2 回答
921 浏览

delphi - 使用 Delphi-Mocks 和 Spring4D 在 DUnit 中模拟接口

因此,在尝试模拟第二复合接口时,我遇到了访问冲突错误,下面是使用 Delphi-Mocks 和 Spring4D 框架的代码示例








注册类型


此处测试项目的完整来源 - https://drive.google.com/file/d/0B6KvjsGVp4ONeXBNenlMc2J0R2M。各位大侠,请指教我哪里错了。先感谢您!

0 投票
1 回答
503 浏览

delphi - spring4d 注销接口类型(spring4d、dunitx、delphi-mocks)

我正在使用 spring4d、dunitx 和 delphi-mocks 编写我的第一个单元测试。(spring4d 发布 1.1 - 12.09.2014)

在我的测试应用程序中,我将一个接口自动注入到我的被测系统类(sut):

现在,当我使用带有模拟的单元测试时,我使用以下(非常简单的)代码:

第一个测试方法(Test1)运行良好......但在第二个测试方法(Test2)中,在 GlobalContainer.Build spring4d 的行中引发异常:ERegistrationException('找到重复的服务名称:IMyInterface_u.IMyInterface@IMyInterface_u.IMyInterface' )。

是否有可能取消注册 aIntfMock,以便我可以为其他每个测试例程注册一个新的?

[编辑]所以解决方案是:

感谢您的快速答复...

0 投票
2 回答
110 浏览

delphi - DelphiMocks:有什么方法可以让 When 子句匹配每个可能的输入?

我正在尝试设置一个模拟函数,该函数将返回一个基于输入的值。我知道的访问输入参数的唯一方法是通过WillExecute方法。但是,您必须指定一个When子句,并且该When子句希望我以以下方式定义一个输入值以及方法:

我有点被迫说:无论何时调用该匿名函数myFunc(1)。我希望能够做同样的事情,但是在每个可能的参数 to 上,在参数 to (从概念上)myFunc中使用一种通配符标记:myFunc

这样的事情可能吗?基本上是一个When匹配作为参数传递的任何值的子句。

有人可能会想指出该WillReturnDefault值,但方法无法访问调用的实际参数WillExecute,因此我将无法设置除常量值之外的任何内容。

谢谢。

0 投票
1 回答
186 浏览

delphi - 在 Delphi-Mocks 中返回记录

我想使用 Delphi-Mocks 模拟一个带有返回记录的函数的类。TValue 和我的记录被报告为不兼容的类型。有什么办法可以用 WillExecute 或任何其他方式做到这一点?