无法使用量角器从mailosaur获取值,尽管同样适用于node.js

时间:2016-06-22 03:02:48

标签: javascript node.js promise protractor angular-promise

我试图将Protractor代码与mailosaur集成以处理电子邮件功能,但在Protractor中编码时无法获取值。当我在node.js中尝试相同的代码时,它正常工作,我能够获得该值。以下是代码:

在Node.js文件中:

var Mailosaur = require("mailosaur")("Your_API_Key");
var mailbox = new Mailosaur.Mailbox("MailboxID");
console.log("Here it begins!");
mailbox.getEmails(function(err, emails) {
console.log(err);
console.log(emails);
console.log("Are you even going inside?");});

在cmd中运行: node filename.js

结果:以cmd格式显示Json格式的数据。

同样的事情,Protractor代码不起作用,下面是代码。

describe('Test Mail', function() {
it('should display the data', function(){
    var Mailosaur = require("mailosaur")("Your_API_Key");
    var mailbox = new Mailosaur.Mailbox("MailboxID");

    console.log("Here it begins!");
    mailbox.getEmails(function(err, emails) {
    console.log(err);
    console.log(emails);
    console.log("Are you even going inside?");});})});

使用提及相应规范文件的配置文件运行它:量角器config.js

结果:只显示顶部日志,即"此处开始!",不显示邮件内容,如上例中node.js。

如果我遗漏了某些东西,请提出建议。

1 个答案:

答案 0 :(得分:1)

在这里欺骗你实际上并没有为量角器控制流程安排一些动作,所以jasmine认为测试已经完成。

检查一下 - http://www.protractortest.org/#/control-flow

  

量角器调整Jasmine,以便每个规范自动等待直到   退出前控制流是空的。

对于你的代码,这样的东西可能有所帮助 - 只需将promise设置为控制流程:

describe('Test Mail', function() {
    it('should display the data', function(){
        var deferred = protractor.promise.defer();
        var Mailosaur = require("mailosaur")("Your_API_Key");
        var mailbox = new Mailosaur.Mailbox("MailboxID");

        console.log("Here it begins!");
        mailbox.getEmails(function(err, emails) {
            console.log(err);
            console.log(emails);
            console.log("Are you even going inside?");
            deferred.resolve();
        });
    })
});