将类作为参数传递给梦魇评估

时间:2018-01-10 10:46:17

标签: javascript typescript mocha electron nightmare

传递class作为参数以访问静态方法。 Evaluate似乎没有按原样传递它。我调试了这个似乎有效参数的line,但当我调用resolve method时,它会抛出错误

  

无法读取未定义

的属性'resolve'

该类只包含简单的静态方法

class App { 
    public static resolve() { return true }; 
}

测试如下

//abc.test.ts
it('should contain "abc" text in Href', (done) => {
        nightmare
            .goto("abc.com")
            .evaluate((driver: any) => {
                console.log('driver', driver.resolve()); also is there a way to console.log in evaluate?
                return document.getElementById("a").textContent;
            }, App)
            .end()
            .then((response: any) => {
                expect(response).to.have.containIgnoreSpaces("abc");
                done();
            })
            .catch((error: any) => console.log("Error", error));
    });

运行测试的npm命令

set DEBUG=nightmare && mocha --recursive --require jsdom-global/register --require ts-node/register --require babel-core/register tests/*

1 个答案:

答案 0 :(得分:0)

评估将字符串化所有内容,您将失去您的课程或任何类型的功能。

这个here是另一个名为Puppeteer的图书馆的答案,但它对你的恶梦剧本也会派上用场。

你应该