编辑:我想我明白为什么它不工作。调用flow.execute(getSpendermeldung)时,我无法传递参数。有人比其他函数包装ApiCall并使用“全局”变量更好?我打算在另一个文件中有这个,并在必要时使用require。量角器诺言fn不是函数
Original Post: 对于我的量角器测试,我想从数据库中获取测试数据。我使用nodejs http模块执行此操作,该模块目前正在运行。由于我测试这个数据我已经运行在同步问题。我用茉莉花回调解决方案解决了它们。不过,我觉得这是不灵活的,并希望使用承诺和控制流程。可悲的是,当我执行我的代码时,我得到一个错误:fn不是函数。在webdriver的/ lib中某处深/ promise.js
这是我的函数:
function getSpendermeldung(kennnummer) {
var http = require('http');
var defer = protractor.promise.defer();
var options = {
host: 'localhost',
path: '/blabla/' + kennnummer
};
var callback = function (response) {
var body = '';
response.on('data',
function (chunk) {
body += chunk;
});
response.on('end',
function() {
spendermeldung = JSON.parse(body);
defer.fulfill('json parsed');
});
};
http.get(options, callback).end();
return defer.promise;
}
我叫它这个:
var flow = browser.controlFlow();
flow.execute(getSpendermeldung('D0000001'));
有人有一个想法,我缺少的是什么。谢谢。
PS:很想发布stacktrace,但我没有得到正确的格式。
我给双方一个尝试,总是在结束无限循环。我认为这是因为get()调用end()隐式,而不是request()。但是,返回推迟似乎是错误的。 – Transzendental
在我的项目中,我一直都会推迟推迟。 – nilesh