首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >量角器+ CucumberJS MySQL查询

量角器+ CucumberJS MySQL查询
EN

Stack Overflow用户
提问于 2014-10-21 12:39:10
回答 2查看 623关注 0票数 0

目前,我的自动化框架使用了来自cucumberJS的量角器。我们使用chai作为断言库,最近我遇到了对数据库执行直接mysql查询的需要。

我将如何构造一个步骤定义,以便能够获得一个查询,并在同一步骤中使用查询结果?当前的斗争是运行量角器的异步方式,导致我在需要查询结果的步骤发生后执行查询,以及传递作为查询结果创建的JSON对象的范围。

代码语言:javascript
复制
  this.loginWithMysqlUser = function(uname) {
var mysql = require('mysql');
var connection = mysql.createConnection({
  host : 'localhost',
  user : '*******',
  password : '*******',
  database : '*******'
});

  connection.connect();

  connection.query('SELECT * FROM prot_users WHERE username = ?', [uname], function(err, rows) {
    if(err) throw err;

    mysqlUser = {
      username: rows[0].username,
      password: rows[0].password
    };

  });

  connection.end();

    loginpage.login(mysqlUser);

  };

此函数驻留在loginpage声明中。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-10-29 14:10:59

最后,我包含了登录的所有逻辑和需要在connection.query函数中处理数据的函数。

似乎工作正常,量角器可以从查询函数中调用。

票数 0
EN

Stack Overflow用户

发布于 2015-04-27 18:35:34

因此,通常您的黄瓜测试脚本希望:

代码语言:javascript
复制
Feature: As an admin I would like to check if a customer has an     
         account
Scenario: Check that customer name is registered in DB
Given that I am logged in as admin
And I wish to check that customer (foo) is registered
Then I expect following details from DB query:
    | username | password | database |
    | foo      | bar      | mysql    |

具有以下步骤的定义:

代码语言:javascript
复制
Given(/^that I am logged in as admin$/, function(callback){
   ..
   logic goes here
   ..
});
And(/^I wish to check that customer (foo) is registered$/, 
function(username, callback){
   // create connection with db as described
   // with supplied username
   // Use a promise to create mySQL connection
   // and queries DB based on username as described
   // on successful resolution set DBResult to results
   // for username, password and database
   // on error set DBResult to undefined
});
Then(/^I expect following details from DB query$/, function(data,   
callback)
{
   var rows = data.raw;
   // extract values of input table cells into DBExpect using
   // rows[0].username
   // rows[0].password
   // rows[0].database
   // Check equality of DBResult and DBExpect objects
   ..
   expect.isFulfilled(DBResult).toEqual(DBExpect).notify(callback);
});
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26486977

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档