问题标签 [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.

0 投票
1 回答
1172 浏览

delphi - CEF4Delphi 和 DUnit

我正在通过 DUnit 在我的应用程序中测试我使用CEF4Delphi创建的一些进程。

以下是重现该问题的 MCVE:

以下是测试用例:

如果我使用 .Show,指令FChromiumCreated := True;不执行,TChromium 不加载页面,测试返回 false。我不确定,但这可能是因为 TChromium 是异步初始化的,并且在执行测试时 TChromium 尚未完全初始化。

在这种情况下如何执行我的测试?

编辑 我已阅读此答案。就我而言,.Show 确实允许进入下一行测试,但似乎 TChromium 在那个阶段还没有完全初始化。我也尝试了tomazy的建议,但这也不起作用。

0 投票
0 回答
361 浏览

delphi - CEF4Delphi 单元测试不

我正在测试一个带有CEF4Delphi组件的 TFrame,但是在释放包含 TFrame 和相关 CEF4Delphi 组件的 TForm 时遇到了问题。

以下是一个最小示例



当我运行 TestTSSFrm.TestChromium1AfterCreated; 测试通过,但是在关闭测试应用程序时,应用程序本身并没有完全关闭,我必须手动从 IDE 重置它。如果我注释掉这些行

那么我关闭测试应用程序没有问题,但我必须手动关闭表单。

我在哪里做错了?

0 投票
1 回答
210 浏览

unit-testing - 如何模拟 TWebRequest/TIdHTTPAppRequest?

我有一个接受TWebRequest参数的函数,例如:

我如何创建TWebRequest并设置一些属性,例如:

  • 主持人
  • 服务器端口
  • 查询字段
  • 内容字段

我努力了:

但是在创建时 Delphi 引发了一个异常:

第一次机会例外,$XXXXXXXX。带有消息“抽象错误”的异常类 EAbstractError。

后代是TIdHTTPAppRequest,但它需要:

每个参数都需要其他对象等。

是否有一种简单的方法(例如第三方单元、未知片段或技巧)来模拟单元测试请求?

0 投票
1 回答
94 浏览

delphi - 如何使用 LeakCheck 处理 DUnit 中的“错误”/预期内存?

为了消除所有内存泄漏,我试图将LeakCheck库合并到 DUnit 中。问题是 LeakCheck 会向我报告不是真正泄漏的内存泄漏。这些是由 RTL 分配并在程序退出时销毁的对象或其他东西。

LeakCheck 包含许多允许您指定要忽略的例程,我能够使用它们来忽略大多数此类“泄漏”。但是,我不知道如何特别摆脱一个:

创建实例TThread(最初是,TThread.CreateAnonymousThread但结果相同)会导致 64 字节的内存泄漏:

在其他情况下,LeakCheck 为我提供了该实例泄漏的类的名称,因此我可以将其添加到忽略列表中,但在这种情况下它没有。我怎样才能抑制这种“泄漏”?

附带说明一下,我遇到的这个和其他泄漏不会发生在 GUI 应用程序中。我猜,RTL 在测试运行之前会为这些对象中的大多数预先分配内存。

0 投票
1 回答
18 浏览

client-server - Apache Geode - 在基于 DUnit 的测试服务器/远程服务器上使用来自客户端的相同代码创建区域

我正在尝试重用以下文档中的代码:https ://geode.apache.org/docs/guide/11/developing/region_options/dynamic_region_creation.html

我遇到的第一个问题是

不应在构造函数中执行。如果是这样,代码是在客户端实例中执行的,它会因非服务器错误而失败。当这个修复时我收到

问题是代码正在 dunit MemberVM 上执行,而所需的类实际上是执行测试的包的一部分。所以我想我应该以某种方式将类(或者可能是 jar)分别注册到 dunit MemberVM。怎么做?

另一个问题是:当前代码正在检查该区域是否存在,如果不存在则调用该方法。在这两种情况下,它还尝试创建 clientRegion。问题是这是否是正确的方法?

BR Yulian Oifa

0 投票
1 回答
49 浏览

delphi - DUNIT X ,传递大量字符串

我需要将大量字符串值传递给测试程序,字符串参数作为逗号文本字符串列表传输,代码如下所示

如果我的字符串列表超过 255 个字符,我会收到以下错误

将许多字符串传递给测试用例的优雅方法是什么?我也不满意在测试用例定义中编写大字符串列表,看起来很丑。