gpt4 book ai didi

unit-testing - 如何使用 Mocha 测试 AngularJS 代码?

转载 作者:行者123 更新时间:2023-12-03 10:16:43 25 4
gpt4 key购买 nike

基本上,我对 Mocha 很有经验(编写了数千个单元测试),而且我对 AngularJS 还是很陌生(只编写了我的第一个项目)。

现在我想知道如何使用 Mocha 对所有 AngularJS 内容进行单元测试。

我知道 Mocha 在浏览器中运行,我已经这样做了。但是我如何构建和设置事物?

我想我需要:

  • 加载 AngularJS
  • 加载 Mocha
  • 加载我的测试

  • 在每个测试中,我需要加载一个 Controller 、一个服务……进行测试。我怎么做?我没有使用 require.js 或类似的东西,这些文件只是脚本文件,基本上包含以下内容:
    angular.controller('fooController', [ '$scope', function ($scope) {
    // ...
    }]);

    如何在测试中引用和实例化该 Controller ?
    这同样适用于服务、指令、...

    我需要为 $scope 创建模拟吗? , $http &公司。为我自己,还是有一些帮助?

    请注意,我知道有 Karma 测试运行器(以前称为 Testacular),但我不想完全切换我的测试运行器。

    最佳答案

    一种方法是使用 Angular $injector 在您的测试中:

    myModule_test.js

    suite('myModule', function(){
    setup(function(){
    var app = angular.module('myModule', []);
    var injector = angular.injector(['myModule', 'ng']);
    var service = injector.get('myService');
    });

    suite('myService', function(){
    test('should return correct value', function(){
    // perform test with an instance of service here
    });
    });
    });

    您的 html应该类似于:
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="utf-8">
    <title>myModule tests</title>
    <link rel="stylesheet" media="all" href="vendor/mocha.css">
    </head>
    <body>
    <div id="mocha"><p><a href=".">Index</a></p></div>
    <div id="messages"></div>
    <div id="fixtures"></div>
    <script src="vendor/mocha.js"></script>
    <script src="vendor/chai.js"></script>
    <script src="angular.min.js"></script>
    <script src="myModule.js"></script>
    <script>mocha.setup('tdd')</script>
    <script src="myModule_test.js"></script>
    <script>mocha.run();</script>
    </body>
    </html>

    关于unit-testing - 如何使用 Mocha 测试 AngularJS 代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16293794/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com