问题标签 [test-data]

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

java - 创建测试数据:域构建器

我想使用底层内存数据库为我的测试创建测试数据。常见的方法是创建一些test_data.sql文件并使用插入创建测试对象。然后在java测试中引用这些对象。

我在《Growing Object-Oriented Software, Guided by Tests 》中读到,测试不需要深入细节。例如,如果测试想要现有用户具有新状态,那么他不需要创建用户并填写所有字段。但他应该只告诉他,他希望用户具有 NEW 状态,并且所有其他字段都应该填充默认值。

所以我想要辅助方法,比如这个:

但是我的数据库模式有很多表,我来到以下代码:

域类:

此代码创建用户、协议(与 FK 到用户)、两个帐户(与 FK 到协议)并返回包含这些实体的域对象。

因此,使用此代码,我基本上可以在一行中为特定测试设置测试数据。

这种测试数据生成方法与 SQL 相比具有以下优点:

  • 我不坚持所有表列,如果添加/删除了某些列/约束,那么我不需要在测试中更改测试数据生成。

  • 更简洁的方式是 SQL:我可以在一行中设置测试数据,而 SQL 方法需要为每个对象编写 INSERT。

  • 它花费的时间更少。是的,首先你开始使用这种方法,你必须花一些时间来实现这样的域构建器,但是一旦你完成了,你就会节省很多时间。

  • 集中对象创建。如果您的数据库模式发生了变化,那么您只需在一处更改对象创建逻辑。

  • 你不需要坚持使用像 USER_WITH_NEW_STATUS_ID 这样的 java 常量。

我的问题是:

是否有人也采用这种方法以及您为此使用哪些库/工具/约定?

更新: 我在几种测试类型中使用这种方法:

  • 存储库测试(例如存储库正确过滤对象,或者它以正确的顺序返回对象列表)。

  • 业务逻辑+数据库集成测试(单元测试很好,但有时我需要100%确定我的业务逻辑和存储库逻辑是一致的

0 投票
2 回答
566 浏览

java - Hsql 从现有数据库创建测试数据

有人知道使用现有数据库为内存 hsqldb 生成复杂测试数据的方法吗?所以我的junit测试将能够使用一部分正确的数据。

具体问题如下:

我们必须为现有项目编写 junit 测试,以验证在我们更改代码时集成是否有效(正常测试过程)但是我们已经有一个现有的数据库。因为我们只是为其他组件提供服务,所以我们“只是”拥有从数据库提供数据的服务。

但是在 hsqldb 中加载整个数据库会占用大量内存......所以我只想拥有一部分我可以测试的数据。表之间有很多引用。

0 投票
1 回答
11853 浏览

credit-card - 我在哪里可以找到磁条(磁道)测试数据?

我已经编写了一个函数库,可以根据 ISO/IEC 7813 从卡(信用卡、ID 等)上的磁条中解析磁道 1 和磁道 2 数据。我希望针对一些有效的(但显然不是真实信用卡')跟踪 2 数据。我只能在网上找到一些示例字符串。我的代码与这些示例完美配合,但我喜欢测试不同的发卡机构等,以确保代码真的可以投入生产。有任何想法吗?我知道http://www.getcreditcardnumbers.com/提供测试信用卡号码,track2 数据类似的东西是理想的。

包含 CC 编号、到期日期和其他信息的标准轨道 2 字符串如下所示:;1111222233334444=9912101xxxxxxxxxxxxx?

0 投票
1 回答
126 浏览

c# - 适合满足单元测试的方法。这似乎是错误的

我已经开始涉足单元测试,并创建了几个测试来测试我的演示者方法之一。此测试需要模拟我的数据访问类,特别是一种方法。这是我的数据访问类的原始方法:

我想用不同的场景测试演示者方法,例如:

  • 定期区域列表
  • 一个空的区域列表
  • 有重复的区域列表
  • 包含一个空字符串区域的列表或区域

我的第一个想法是为这些场景中的每一个创建一个单独的模拟数据访问类。我认为这有点麻烦,所以我稍微调整了该方法以允许读取不同的 xml 文件,其中包含特定于当前测试的数据。这是我的模拟方法的外观:

然后将从 PresenterTest 类中调用此模拟方法,如下所示:

现在,我遇到的问题是我现在需要更改原始方法的签名(通过添加对 dataSource 参数的引用):

因为只有单元测试需要这个参数,所以 null 的值是从真正的 Presenter 类传递给这个方法的,并且从未使用过。

我知道这是错误的,但是应该如何实现呢?我应该创建一个单独的模拟数据访问类来设置每个测试数据场景吗?

0 投票
1 回答
11229 浏览

matlab - 将数据数组转换为时间序列对象

我有一个 10000x43 数组,表示从数据采集硬件获取的测试数据。第一列是时间向量,其余列是每个通道。我还有一个 1x43 单元格数组,用于定义每个通道的名称。

我想从这个数组数据创建一个时间序列对象。我想这样做的原因是我可以在总线选择器块中使用通道名称 - 这使得将测试数据输入到 simulink 模型中变得很容易。

我已经查看了在线和文档,但在如何重现我在 simulink 中使用“ToWorkspace”块时获得的相同类型的时间序列对象方面我没有太多运气。

0 投票
2 回答
9650 浏览

grails - 如何在 Geb grails 中设置和拆卸功能测试数据

我有许多工作/通过的功能性 geb/spock 测试(每个都扩展了 GebReportingSpec),这些测试使用功能测试套件开头的 BootStrap.groovy 创建的测试数据测试 Web 应用程序。

我想将测试数据创建移动到每个 Spec 中的 startup() / teardown() 方法中,实际上我想让它们从基类继承它,但显然 StepWise 存在继承问题。

所以,目前我的每个测试规范类看起来都像:

现在,我的问题是我似乎无法创建一个可以创建测试数据的新测试(在第一个测试之上)。如果没有有效的 given/when/then 语句,测试似乎不会被执行,并且从现有测​​试中调用方法似乎也不起作用。我已经研究了 grails-remote-control 插件来帮助我,我相信这将使我能够成功地调用闭包来设置数据,但我不确定从 GebReportSpecs(或一些抽象父级)中调用它的最佳机制.

下面是我希望能够做的事情的简要概述,或者通过将“setupData()”作为第一个测试,或者通过在测试中调用该方法......似乎都不起作用。

是否有像 @before 这样的注释可以强制调用这些方法?

任何建议表示赞赏。

解决方案:我已在正确答案中接受了 dmahapatro 在下面的回复,但也为那些可能觉得有用的人提供了下面的最终解决方案示例。

0 投票
1 回答
89 浏览

service - Sample data service

Some time ago I saw very useful service for creating and populating sample data for your web application. There was beauty web-face to prepare your data via set of grids. And then you can access your sample data through web-service in JSON format (e.g.).

It's very useful for simple web-application development/debugging.

I can't believe, but can't google it.. Just found one similar http://generatedata.com/.

Any ideas?

0 投票
1 回答
13708 浏览

database - 使用 Oracle PL/SQL 开发人员生成测试数据

我想测试一些模式和索引,我想知道 PL/SQL Developer 中是否有可以生成测试数据的功能(所以我不必创建序列和循环来在表中插入数据)。

0 投票
0 回答
43 浏览

email - 我在哪里可以获得大量 HTML 电子邮件回复以进行测试?

我想尝试开发一个解析 HTML 电子邮件回复的库。为了进行测试,我需要大量 HTML 电子邮件回复(来自不同的电子邮件客户端,使用不同的语言)。获取此类测试内容的最佳方式是什么?

我查看了公共邮件列表档案(包括 Google 群组),但其中许多服务只允许基于文本的电子邮件。

有任何想法吗?

0 投票
2 回答
7282 浏览

csv - 测试和训练集不兼容

我看过关于同一问题的各种文章,尝试了很多解决方案,但没有任何效果。好心劝告。

我在 WEKA 中遇到错误:

“问题评估分类器:测试和训练集不兼容”。

我在用

J48 作为我的算法

这是我的测试集:

(由于代码太长,我无法复制和粘贴)

我在 WEKA(用于 Traningset)中尝试了“批量过滤”,但它仍然不起作用。

编辑:我什至已经转换了我的.csv to .arff 但仍然是同样的问题。

EDIT2:我已确保两个 CSV 中的标题匹配。即使是同样的问题。请帮忙!

请指教。