问题标签 [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.
delphi - 如何使用 Delphi-Mocks 框架在 Delphi 的子类中使用模拟
好的,我一直在使用优秀的Delphi-Mocks 框架,只是遇到了一个问题。假设我有以下接口:
现在,我正在尝试使用 DUnit 和 Delphi-Mocks 测试 Sale 界面,并按如下方式使用它:
所以我的问题是:如何将子模拟添加到现有的模拟接口并调用其方法和属性?
谢谢!PS我正在使用Delphi XE2。
delphi - 使用 Delphi Mock Framework 并导致副作用
我正在使用相当好的Delphi Mocks框架,并试图创建一个包含具有“副作用”的方法的类的 Mock,即它是一个读取操作,并且在现实世界的实现中它设置内容缓冲区,如果读取成功。所以我的问题是,我如何模拟这种“副作用”?
delphi - Delphi-Mocks:在构造函数中模拟带有参数的类
我开始使用Delphi-Mocks框架,并且在模拟一个在构造函数中具有参数的类时遇到了麻烦。TMock 的类函数“Create”不允许参数。如果尝试创建 TFoo.Create( Bar: someType ); 的模拟实例 当 TObjectProxy.Create 时,我得到一个参数计数不匹配;尝试调用 T 的“创建”方法。
显然这是因为以下代码没有将任何参数传递给“Invoke”方法:
我创建了一个确实传递参数的重载类函数:
并且正在使用我所做的有限测试。
我的问题是:
这是一个错误还是我做错了?
谢谢
PS:我知道 Delphi-Mocks 是以接口为中心的,但它确实支持类,而且我正在处理的代码库是 99% 的类。
delphi - 如何使用 Delphi Mocks 框架检查参数的内容?
我正在尝试使用Delphi Mocks框架测试一个创建简单值对象并将它们传递给协作者的类。如何检查这些对象的内容?
代码的大致思路是这样的:
因此,当调用 to 时DoSomething
,TSUTClass
应该创建几个实例TData
并将它们一一传递给Receiver.Process
. 我可以验证是否使用此设置进行了正确的调用计数:
但是如何检查Field1
和的值Field2
是否正确?
delphi - Delphi 如何模拟事件处理程序,或者在 Delphi 中将接口方法分配为委托?
所以,我有一个带有事件的 Delphi 对象,它是“对过程()的引用”。通常我可以这样做来分配代表。
MyObj.OnBooom := HandleOnBooom;
现在我想对事件是否被调用进行单元测试。所以使用依赖于接口的Delphi Mocks,我将制作一个具有“OnBooom”过程的接口,将接口传递给TMock对象。然后这样做。
MyObj.OnBooom := FMockCaller.Instance.OnBooom;
但这不会编译,因为显然 Delphi 认为,在右侧我只是调用接口的过程,而不是想将其分配给左侧。
那么,有没有办法让这个分配工作?还是有其他方法可以让 Delphi Mocks 活动?谢谢。
delphi - 使用 Delphi-Mocks 和 Spring4D 在 DUnit 中模拟接口
因此,在尝试模拟第二复合接口时,我遇到了访问冲突错误,下面是使用 Delphi-Mocks 和 Spring4D 框架的代码示例
注册类型
此处测试项目的完整来源 - https://drive.google.com/file/d/0B6KvjsGVp4ONeXBNenlMc2J0R2M。各位大侠,请指教我哪里错了。先感谢您!
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,以便我可以为其他每个测试例程注册一个新的?
[编辑]所以解决方案是:
感谢您的快速答复...
delphi - DelphiMocks:有什么方法可以让 When 子句匹配每个可能的输入?
我正在尝试设置一个模拟函数,该函数将返回一个基于输入的值。我知道的访问输入参数的唯一方法是通过WillExecute
方法。但是,您必须指定一个When
子句,并且该When
子句希望我以以下方式定义一个输入值以及方法:
我有点被迫说:无论何时调用该匿名函数myFunc(1)
。我希望能够做同样的事情,但是在每个可能的参数 to 上,在参数 to (从概念上)myFunc
中使用一种通配符标记:myFunc
这样的事情可能吗?基本上是一个When
匹配作为参数传递的任何值的子句。
有人可能会想指出该WillReturnDefault
值,但方法无法访问调用的实际参数WillExecute
,因此我将无法设置除常量值之外的任何内容。
谢谢。
delphi - 在 Delphi-Mocks 中返回记录
我想使用 Delphi-Mocks 模拟一个带有返回记录的函数的类。TValue 和我的记录被报告为不兼容的类型。有什么办法可以用 WillExecute 或任何其他方式做到这一点?