Javascript 如何将sugar.js与CasperJS一起使用?

Javascript 如何将sugar.js与CasperJS一起使用?,javascript,casperjs,sugar.js,Javascript,Casperjs,Sugar.js,要明确的是,我想在casperJS脚本中使用扩展(不同于它是被测试网站的一部分) 我在测试模式下使用casperJS(即,casperjstestmyscript.js),如果这有什么区别的话。Sugar基本上是一个支持库。它不导出任何函数,而是将函数添加到JavaScript运行时的各种类型的对象中 步骤: 放置在脚本目录或其他目录中 require(“sugar.min”)直接或从另一个目录执行文件require(“./relativePath/sugar.min”) 以下完整脚本显示了它的

要明确的是,我想在casperJS脚本中使用扩展(不同于它是被测试网站的一部分)


我在测试模式下使用casperJS(即,
casperjstestmyscript.js
),如果这有什么区别的话。

Sugar基本上是一个支持库。它不导出任何函数,而是将函数添加到JavaScript运行时的各种类型的对象中

步骤:

  • 放置在脚本目录或其他目录中
  • require(“sugar.min”)
    直接或从另一个目录执行文件
    require(“./relativePath/sugar.min”)
  • 以下完整脚本显示了它的工作原理:

    casper.test.begin("sugar1", function suite(test){
        test.assertTrue(![1,2,3].average, "average function does not exist");
        require("sugar.min");
        test.assertFalse(![1,2,3].average, "average function does exist");
        test.assertTrue([1,2,3].average() === 2, "average function works");
        test.done();
    });
    

    require
    通常用于加载模块,但由于Sugar不导出任何内容,所以它只是执行。另一种方法是使用
    fs.read
    eval
    读取文件,这只是Artjom答案的附录;当使用SlimerJS作为引擎时,它会在使用
    require
    时挂起。我使用以下方法使其工作(使用PhantomJS和SlimerJS):

    var fs = require('fs');
    var sugarJS = fs.read("/path/to/sugar.min.js");
    eval(sugarJS);
    
    作为替代品:

    require("/path/to/sugar.min");
    

    完美的比我想象的要容易。(我使用了带有相对路径的
    require
    ,它是第一次工作。)
    require
    是一个非常有用的工具。如果你需要一个JSON文件,它会被直接解析和导出。Artjom,我从使用
    require
    切换到
    fs.read()
    eval
    ;见下面我的答案。