Tag: functiontesting

CasperJS不会加载由Angular路由器注入的内容

我在GitHub上准备了一个示例项目 ,以配合我正在编写的关于如何为dockerized应用程序编写functiontesting的课程。 该应用程序有一个是Angular2单页面应用程序的一部分,我试图用CasperJStesting这个应用程序(我也试过与下面解释的相同问题的Behat)。 当在CasperJS中运行testing时,就好像Angular中的路由不会加载testing,因此我可以断言索引模板中的东西存在(例如页面标题),但是<app-root></app-root>标记不会加载testing。 代码 这里是索引模板: <!doctype html> <html lang="en"> <head <meta charset="utf-8"> <title>TestProject</title> <base href="/"> <meta name="viewport" content="width=device-width, initial-scale=1"> </head> <body> <app-root></app-root> </body> </html> testing是: casper.test.begin('Tests homepage structure', function suite(test) { casper.start('http://web', function() { // This works because the title is set in the "parent" template. test.assertTitle("TestProject", "Title is correct"); casper.wait(2000); // This fails, […]

为与mysql数据库交互的node.js程序编写functiontesting的最佳策略

我有一个node.js程序,它与mysql服务器有交互。 现在我要用摩卡书写一个functiontesting。 我做functiontesting的方法如下: 用dockerode创build一个mysql docker 容器 。 让node.js程序连接到mysql服务器的docker容器并写入数据。 检查数据库是否包含预期的数据。 卸下docker箱。 我对上述策略存在的问题是: 我如何让node.js等待mysql容器准备好连接? 目前,我使用setTimeout等待几秒钟。 我不认为这是适当的。 因为不同的机器可能需要不同的秒数容器准备连接。 是否有可能创build一个虚假的MySQL服务器,而不是使用docker容器来创build一个真正的MySQL服务器? 我还没有find任何模仿mysql服务器行为的节点模块。 因为我认为创build一个假的MySQL服务器允许我知道服务器何时准备好连接。 有没有人有这样的经验? 以下是我的代码的一部分: let Docker = require('dockerode') let docker = new Docker({socketPath: '/var/run/docker.sock'}) describe('Test AddShop2Database behavior', () => { before((done) => { setTimeout(setupDatabase, // setupDatabase create a mysql docker container 1000, (err, data) => { if (err) { […]