问题标签 [dunit]
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.
unit-testing - 动态创建测试列表
我在 Delphi 中使用 DUnitX,但我被卡住了。如何动态创建测试列表?
例如,我有 sql 列表,需要像测试它们一样
对于一种方法,这很简单
执行
但是如果我需要测试列表,那么属性是不够的。 RepeatTest属性也不足,因为如果其中一项测试失败,则整个测试将停止,但我需要运行所有 sql
任何建议
编辑1
在 DUnit(没有 X)中,这可能是这样的
DUnitX 中的等价物是什么?
delphi - 如何在应用程序控制台的 DUnit 中确定哪些层次结构将被测试和未测试?
如何在应用程序控制台的 DUnit 中确定哪些层次结构将被测试和未测试?当我在 GUI 模式下工作时,我可以检查和取消选中层次结构。
jenkins - 为什么从“本地系统”帐户运行时单元测试会崩溃?
观察到的
我有一个在 Windows 从站上运行的 Jenkins 构建作业。从站已正确设置 MSBuild,并且正在运行 Windows Server 2012R2 Standard x64。
该构建作业正在为我的项目编译和运行单元测试。测试使用 DUnit 和 DelphiXE2 编译器。构建测试没有问题。但是当测试可执行文件启动时,Runtime error 216 at 00406E56
就会发生。可执行文件不产生输出,并且不创建测试结果文件。测试可执行文件使用ConsoleRunner
而不是 GUI。
当我以本地管理员或受限用户身份运行 exe 时,它按预期工作。
预期的
测试可执行文件通常会产生输出。它为每次测试运行打印一个点。无论如何,我希望exe开始运行。
自己的研究
这里有一个问题似乎描述了相同的行为。
local system
当运行可执行文件(例如通过PSExec )时,Windows Server 2012 和 2012R2 上会出现此问题。我用Dependency Walker查看了库依赖项,发现所有的库都可以被 exe 访问。PATH 和其他库依赖项的搜索路径都至少具有读取访问权限
local system
我确保 WOW64 正常工作。
嫌疑人
我不知道 DUnit 或 Delphi XE2 通常是否需要设置可见用户界面的权限。这是该local system
帐户缺乏的东西之一。
unit-testing - Delphi 单元测试:为 CUT 编写一个简单的 spy
我正在寻找一种方法来轻松简洁地为 Delphi 下的DUnitX 测试框架编写一个间谍。
在过去,我使用了非常丑陋的方法来使用:
所有这些代码都用于检查是否调用了过程。太啰嗦了!
有没有办法编写一个可以帮助我减少代码的间谍?
delphi - 在 StopExpectingException 之后的 Delphi 7 Dunit 检查没有像我预期的那样工作
下面的代码工作正常, calc... 生成一个异常,将其注释掉或将 calc... 更改为不抛出异常并且测试失败。
我的问题是,在此之后我在此测试方法中进行的任何检查都不会执行。
所以
第一次 checkEquals 失败
通过 - 为什么?
我试图弄清楚我使用的是什么版本的 Dunit:
unit-testing - 模拟 FireDAC
我刚进入 Delphi 的单元测试领域——从来没有在 Delphi 中做过。在我开始数据库连接和查询之前,一切都很顺利。我正在使用TFDConnection
和TFDQuery
在数据访问类中。
我发现一篇文章指出应该使用“昂贵”调用接口。我查看了 FireDAC 的源代码,但没有找到任何合适的接口可以使用。并且实现 FireDAC 的大部分行为的观点并没有让我振作起来。
如何以正确的方式模拟数据库对象?
我开始认为将系统指向测试数据库应该容易得多。
delphi - DUnit 控制台应用程序未作为控制台应用程序运行
我有一个奇怪的问题。我有一个 DUnit(Delphi Berlin)应用程序,我需要作为 GUI(在我的开发机器上)和控制台应用程序(在构建机器上)运行。我刚刚复制了项目文件,重命名了它。我有通常的:
在一个应用程序中,我定义了 CONSOLE_TESTRUNNER 条件定义,而在另一个应用程序中我没有。
如果我编译控制台应用程序,它将作为控制台应用程序工作。但是,如果我 BUILD,那么它将作为 GUI 应用程序运行。(无论是在 GUI 中还是在命令行中)我什至尝试删除条件定义并将其显式设置为 {$APPTYPE CONSOLE},以从等式中删除条件定义,但随后应用程序只是抛出了一个 EInOutError I /O 错误 105。我猜它正在尝试写入输出但失败了。但是为什么呢?</p>
delphi - Delphi 在 DUnit 中模拟生命周期
我想测试最简单的情况:测试模拟策略对象。(看:策略模式)。
TMock<T>
如果我在方法中创建 aTTestCase.setUp
并将其存储在TTestCase
实例属性中,那么我应该释放/NILtearDown
方法中的模拟变量吗?
mock := NIL
不编译:
[dcc32 错误] TestUnit2.pas(44):E2010 不兼容的类型:“Delphi.Mocks.TMock<T>”和“指针”。
运行没有任何错误,mock.free
但我不确定我应该调用它。当进程退出其范围(在测试用例析构函数之后)时释放的模拟。
我应该打电话/设置什么吗?
编码:
单元2.pas:
测试单元2.pas:
dunit - 奇怪的单元版本错误 - DUnitX 取决于 DUnit 还是相反?
我正在使用 Delphi xe4 编译https://github.com/hprose/hprose-delphi/blob/master/Test/HproseTest.dpr
并得到以下错误,我花了几十分钟仍然无法弄清楚原因。
我尝试删除所有“DUnitX * .dcu”并再次编译,但没有成功。
让我感到困惑的是,为什么DUnit的 TextTestRunner 单元(先出生)依赖于后来出生的DUnitX的单元?
有什么提示吗?谢谢。
delphi-2009 - DUnit 测试 - 无法创建表单。当前没有 MDI 表单处于活动状态
我从 DUnit 测试开始,对于新手的任何错误,我深表歉意。当我尝试运行简单测试并且编译器运行我的测试类的 SetUp 时,它停止返回消息“无法创建表单。当前没有 MDI 表单处于活动状态'。
经过一番研究,我找到了一些解释,但与我的问题无关。
问题似乎是当我调用我的子源类的 Create 方法时 - 原点是指我拥有所有要测试的过程和函数的类,让我们通过 TfrmFoo 调用它。我的测试类应该是TestTfrmFoo。TFrmFoo 有一个带有一些基本代码的父级,即 TfrmParentFoo。
我这样调用 Create 方法:
之后调用TfrmFoo类的Create方法,出现如下错误:' Cannot create form. 当前没有 MDI 表单处于活动状态'。
我已经尝试覆盖我的子类 TfrmFoo 的创建,将 FormStyle 属性设置为“fsNormal”而不是“fsMDIChild”,什么也没有。我还发现了一些关于使用 sleep(500) 的想法,但问题仍然存在。
编辑:贡献
后Remy Lebeau
,我更改了SetUp测试以在调用子窗体之前创建父窗体,并将其用作创建子窗体的参数。相同的错误信息。我是不是改错了什么?
还有其他提示吗?谢谢!