如何运行对数据集的单位测试? (drupaldebtestcase和drupaltestcase) -- 7 领域 和 testing 领域 drupal 相关 的问题

How do I run unit tests against datasets? (DrupalWebTestCase and DrupalTestCase)


0
vote

问题

中文

我正在测试一个模块,我正在编写rupal 7.全部意义上的单位测试框架,一切都是如此。

我的问题,是否有可能运行测试用例的测试数据?

我可以想到一些选项/答案:

  • 欺骗单位测试进入未设置测试数据库,并刚刚对抗实时数据(我不想这样做,它的喧嚣)
  • 对测试数据的测试也是单位测试的地方也是可能的,因为如果有数据与否,从技术上是可以通过的 - 从我理解的单元测试中来看。

应该在与最简单的框架不同的地方进行功能测试?或者有没有办法测试数据集?

英文原文

I am testing a module that I am writing against the Unit Testing framework that comes with Drupal 7. All makes sense, and everything asserts as it should.

My question though, is it possible to run test cases against test data?

I can think of a few options/answers:

  • Trick the unit test into not setting up a test database, and just run against the live data (I don't want to do this, its hackish)
  • It's also very possible that testing against test data is not the place of a unit test, because technically a unit test should pass if there is data or not - from my understand of unit testing.

Should functionality testing be done in a different place than the SimpleTest framework? Or is there a way to test against data sets?

     

回答列表

1
 
vote

drupal 8包含用于从Drupal 7验证升级的测试将正确执行。这些测试基本上创建了Drupal 7表,用所需的值填充它们,并调用Update.php。

您可能需要为模块创建升级/更新测试,或者您可以测试函数如何在从其预期的格式的数据库中读取数据时的行为。
在第一种情况下,您需要覆盖 99887660 方法,避免调用 parent::setUp() ;在第二种情况下,您将使用测试数据填充从测试中使用的数据库表,调用函数,并检查返回值是什么。

除了测试更新之外,我只能考虑测试需要填充数据库表的情况:

  • 如果表包含从用户输入的内容,则测试应验证表单验证处理程序是否正确显示错误输入的错误

  • 如果表包含从另一个模块输入的数据,那个模块应该使用模块实现的函数,并且测试只需检查它在收到错误/意外值时功能的功能

可以是您的模块正在使用从另一个模块创建的表中的数据,这不是将API暴露在该表中加载/保存数据。在这种情况下,如果您知道还有另一个输入EM>意外数据的模块,则可能需要验证模块是否能够处理该数据。

 

Drupal 8 contains tests for verifying an upgrade from Drupal 7 would be executed correctly. Those tests basically create Drupal 7 tables, fill them with the required values, and call update.php.

You could need to create a upgrade/update test for your module, or you could test how a function behaves when it reads data from the database that are not in the format it expects.
In the first case, you would need to override the setUp() method, and avoid calling parent::setUp(); in the second case, you would fill the database table used from the test with the test data, call the function, and check what the return value is.

Apart from testing an update, I can think only of a case where a test would need to fill a database table, since:

  • If the table contains what entered from users, then the test should verify the form validation handler correctly shows error for wrong input

  • If the table contains data entered from another module, that module should be using a function your module implements, and the test should just check what the function does when it receives wrong/unexpected values

It could be your module is using data from a table that is created from another module, which is not exposing an API to load/save data in that table. In that case, if you know there is another module that enters unexpected data, you could need to verify your module is able to handle that data.

 
 

相关问题

39  添加CSS和JS以形成附件  ( Adding css and js to form with attachments ) 
我需要将一些外部和本地CSS和JavaScript文件添加到表单中,但我似乎无法找到正确的方法。我只需为JS和CSS文件添加路径和URL? 我假设 $form['#attached']['css'][] 和 $form['#attached']['js'][] 是正确的代码,所以他们在形式重建时得到重新加载。我似乎错...

-2  如何在没有模块的情况下在我的网站中添加关键字? [关闭]  ( How can i add keywords in my site without module ) 
关闭。这个问题需要更多聚焦。它目前不接受答案。 想要改进这个问题?更新问题,以便仅通过编辑此帖子的一个问题。 关闭 7年前。 ...

1  拥有自己的主题来创建和编辑节点:没有WYSIWYG编辑器  ( Having my own theme for creating and editing nodes no wysiwyg editor ) 
i禁用该选项"编辑或创建内容时使用管理主题" ,因此我会看到默认主题中的所有内容。 但现在我出现了一个问题:js drupal对象位于页面的底部(如通常的页面中所有js文件应该在底部)。 但CKEditor(我正在使用的)需要头部对象。 //更新:我检查了脚本并发现,该脚本托运人在所有脚本的顶部执行。另一方面的...

0  以编程方式在自定义表单中添加现有实体引用自动完成字段  ( Programmatically add an existing entity reference autocomplete field in custom f ) 
我需要创建自定义表单并将实体参考字段添加到它。该字段使用自动填充功能,查看实体选择。该字段已存在于节点上,但我也需要它在自定义模块中。是否有一种方法可以在带有 MYMODULE_MYFORM_form() 的自定义模块中添加此字段?? ...

0  文章评论中没有“pagination”  ( No pagination on article comments ) 
好的,我在D7上并使用默认的Bartik主题。我将内容类型文章设置为每页10的评论,线程。我发布了一个测试文章并开始评论测试寻呼,当我超过每页10的设置限制时,该文章只显示前10个注释,我没有看到"更多" 或"下一页" 或任何链接到评论的第二页。 我没有触摸任何PHP或CSS。 ...

3  JavaScript装载订单  ( Javascript loading order ) 
我在几个项目中安装了eu-cookie-compliance模块,它的到处都是预期的,但在一个项目中,我在正确的顺序上加载JavaScript有问题。 即使我实现了Hook_JS_ALTER并设置了较高的权重,即使在MISC / DRUPAL.JS和MISC / jQuery.js之前加载了eu-Compliance...

1  分类学术语的“管理显示”不允许管理名称字段  ( Manage display for taxonomy term does not allow management of the name field ) 
与相关的图像有一个分类。它应该用图像显示,没有标题。但是,进入此分类系统的"管理显示" 部分,根本不会显示名称字段。 搜索这已被证明是徒劳的。我可以通过修改显示代码来手动删除它,但是,留下无法从CMS更改其显示的方法。 为什么姓名不能作为显示的一部分可管理? 有些方法可以管理包括名称的分类学术语显示? ...

0  php以显示内容是否在分类术中具有新的评论.TPL.php?  ( Php to show if content has new comments in taxonomy term tpl php ) 
是可以将一些php添加到分类学 - term.tpl.php,它将看起来,看看是否有任何标记为术语的内容是否有新的评论,如果是这样打印HTML中的内容? ...

0  基于Solr的建议模块  ( Module for recommendations based on solr ) 
我想询问是否有建议(产品,节点等)的模块 基于solr。 我已经搜索了drupal.org,我找到了内容推荐模块,这一点使用solr列出任何模块。 ...

0  生日迁移到Profile2  ( Birthdays migrate to profile2 ) 
家伙。 我这个问题,我确实从CSV文件中迁移了一个用户列表,并将迁移模块迁移到Profile2。我将使用Import的一个唯一值与FORMAT DD / MM / Y进行。一切都很好,但最后,生日场是空的。 导入(更新)我的用户生日的正确方法是什么。 谢谢! ...

2  未显示上传的文件[已关闭]  ( Uploaded files arent displayed ) 
关闭。这个问题需要更多聚焦。它目前不接受答案。 想要改进这个问题?更新问题,因此它仅拍摄了一个问题,只有编辑此帖。 关闭 3年前。 ...

0  FancyBox模块错误消息  ( Fancybox module error messages ) 
我启用了FancyBox模块,但是由于这样做即可获取以下错误消息: Notice: Undefined index: options in _fancybox_filter_settings() (line 559 of /home/mysite/public_html/sites/all/modules/fan...

0  用户关系请求在具有接受和拒绝链接的视图块中  ( User relationship requests in a view block with accept and decline links ) 
我有一个节点,其中我想要向用户展示所有关系请求当前用户已经接收到下面的状态链接,以便用户可以接受或拒绝请求,然后在不需要转到的情况下无聊的Drupal默认用户关系页面。我显然是使用用户关系模块为此目的。无论如何,我举行了创建一个观点,但在滋补足够后,我无法这样做。我能做的就是获得所有关系请求的列表(也是由登录用户制作...

2  有没有办法在悬停在它的链接上时动态地显示页面?  ( Is there a way to show a page dynamically when hovering on its link ) 
只是想知道是否有模块或某种方式一般来说,执行以下操作: 在页面链路上悬停时,将该页面的内容显示为工具提示或某种小型下拉窗口。 谢谢。 ...

0  进度栏预付款,操作没有  ( Progress bar advances operations does nothing ) 
我正在尝试创建批量来导入用户。我使用了这个( http://pastebin.com/dutbxpgd )作为一个例子,但不知何故它不起作用。我看到进度条推进,它显示了我正在处理的正确行数。但是我在操作功能中尝试做什么。 这是我的代码: function form_submit($form, &$form_sta...

0  WEBForm单选按钮设置常用功能  ( Webform radio button sets common functionality ) 
我有2套具有不同数据的单选按钮,因为它们是无线电,只能选择每个设置的单个选项。 但是,我试图实现一个设置,它只能在2组无线电之间选择一个选择。 因此,如果我在set#2中选择一个选项,则将取消选择#1中的任何先前选择的选项,反之亦然。 有人可以帮助这个吗? ps:我知道JavaScript应该满足这种需求,但...

0  如何将菜单项链接到Drupal7中的页面,可以显示数据库内容?  ( How to link menu item to a page in drupal7 that can display database content ) 
我在my drupal7中使用自定义模块,以在表单中添加数据,然后将其插入数据库中。表单有像"菜单名称" ,"图像" 等的字段我想知道: 如何通过单击每个菜单项在我的网站上显示此动态内容? 换句话说,如何将动态内容链接到菜单项?菜单项的名称将等于我自定义模块中的表单中的字段(菜单名称)之一。每个菜单项页面都可以具...

1  术语视图中的内容的关系会导致重复和缺少结果  ( Relationship to content in term view causes duplicate and missing results ) 
我有这些术语,节点和评论。所以'nodea'和'nodeb'被标记为"term1" 。 "Nodea" 和'NodeB'都有新的评论。 Term1 -NodeA (has new comments) -NodeB (has new comments) Term2 -NodeC (no new comments...

0  小电子商务:1+卖家,通过PayPal付款基于卖家配置  ( Little ecommerce 1 seller payment via paypal based on seller configuration ) 
我需要创建一个小型电子商务网站,我可以拥有多个卖家,但付款是通过PayPal进行的,卖方的数据。 我不能在我的购物车中有不同的卖家(这是可以的)不同的产品。 是有点小电子商务模块吗?如果可能,我不想使用Drupal Commerce或Ubercart。 我可以使用哪个模块? ...

0  是否停用模块安全的设置?  ( Is deactivating modules safe regarding settings ) 
在甚至在激活模块之前将模块上传到共享主机服务器后,我有一个奇怪的错误,甚至在激活模块(image_desaturate_formatter)之前。 porpexception:sqlstate [23000]:Integrity Constraint违规:1062复制条目的站点/全部/模块/ image_desa...




© 2021 it.wenda123.org All Rights Reserved. 问答之家 版权所有


Licensed under cc by-sa 3.0 with attribution required.