Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用量角器的AngularJS指令测试_Angularjs_Unit Testing_Protractor - Fatal编程技术网

使用量角器的AngularJS指令测试

使用量角器的AngularJS指令测试,angularjs,unit-testing,protractor,Angularjs,Unit Testing,Protractor,有什么方法可以用量角器/WebDriver进行单元测试吗?理想情况下,我想做的是隔离单个指令/组件,模拟其依赖关系,注入各种数据位,并在一组浏览器中使用量角器遍历它 有没有办法做到这一点 量角器主要用于e2e测试。从最终用户的角度进行测试。 您可以使用jasmine框架进行单元测试,并且量角器e2e测试也支持jasmine 量角器(更广泛地说,是Selenium)通常用于自动化非技术最终用户能够自行执行的各种测试。尽管如此,有时在服务器上模拟各种错误条件可能是有用的。您有两个选择: onPrep

有什么方法可以用量角器/WebDriver进行单元测试吗?理想情况下,我想做的是隔离单个指令/组件,模拟其依赖关系,注入各种数据位,并在一组浏览器中使用量角器遍历它


有没有办法做到这一点

量角器主要用于e2e测试。从最终用户的角度进行测试。 您可以使用jasmine框架进行单元测试,并且量角器e2e测试也支持jasmine

量角器(更广泛地说,是Selenium)通常用于自动化非技术最终用户能够自行执行的各种测试。尽管如此,有时在服务器上模拟各种错误条件可能是有用的。您有两个选择:

  • onPrepare脚本:使用
    onPrepare
    脚本尽可能多地完成后端设置工作,如果可以提前完成的话。在量角器配置文件()中设置
    onPrepare
    属性,以指向prepare脚本,在那里可以在数据库中设置记录、创建文件或执行任何其他可能需要执行的操作

  • 使用:这允许您在调用grandor.get时,通过在Angular之前添加要加载的模块来模拟后端API。有关示例,请参阅博客帖子(搜索“超越基础”):

  • 在服务器上配置仅测试路由:作为最后手段,您可以在服务器上配置一些路由,这些路由只能在执行端到端测试中可能需要的任何后端处理的开发环境中访问。例如,如果您将Node.js与Express.js一起使用,您可能会执行以下操作

  • 仅测试路线:

    // Store your server-side e2e methods in this file
    var e2eBackend = require('./test/e2eBackend');
    
    if (app.get('env') === "development") {
        app.get('/e2e/simulateCrash', e2eBackend.simulateCrash);
        // etc.
    }
    
    我现在正在使用Karma(与Jasmine一起)来测试一切,但正如你所说,这是单元测试,不是从用户的角度。我想做的是从用户的角度(量角器)进行测试,但控制被测试组件的状态。在e2e测试中模拟所有错误条件并不总是容易的。例如,如何测试特定的小部件处理服务器故障或internet连接丢失的能力?