簡體   English   中英

用Mocha和Chai測試Angular

[英]Testing Angular With Mocha and Chai

我想用Yeoman測試我的角度應用程序,該應用程序將Mocha與Phantom和Chai一起使用來聲明。 但是當我運行任何樣本測試用例時,測試用例無法正常運行,這表明由於缺少Mocha run()調用而導致PhantomJs超時。非角度用例在測試用例中運行正常。

<!doctype html>
<head>
  <meta charset="utf-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
  <title>Mocha Spec Runner</title>
  <link rel="stylesheet" href="lib/mocha/mocha.css">
</head>
<body>
  <div id="mocha"></div>
  <script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.0.5/angular.min.js"></script>
  <script src="lib/mocha/mocha.js"></script>
  <script>mocha.setup('bdd')</script>
  <script src="lib/chai.js"></script>
  <script>
      expect = chai.expect;
      assert = chai.assert;
  </script>
    <script>
        function addSum(num1, num2) {
            return num1 + num2;
        }
    </script>
  <script>
  (function() {
    describe('Give it some context', function() {
        it('should simulate promise', inject(function ($q, $rootScope) {
            assert.notStrictEqual(3, '3', 'no coercion for strict equality');
         /*   var deferred = $q.defer();
            var promise = deferred.promise;
            var resolvedValue;

            promise.then(function(value) { resolvedValue = value; });
            expect(resolvedValue).to.be.undefined;

            // Simulate resolving of promise
            deferred.resolve(123);
            // Note that the 'then' function does not get called synchronously.
            // This is because we want the promise API to always be async, whether or not
            // it got called synchronously or asynchronously.
            expect(resolvedValue).to.be.undefined

            // Propagate promise resolution to 'then' functions using $apply().
            $rootScope.$apply();
            expect(resolvedValue).to.equal(123);*/
        }));
    });
  })();
  </script> 



  <!-- trigger the mocha runner -->
  <script src="runner/mocha.js"></script>

</body>
</html>

您是否嘗試過使用量角器? 它是專門為測試端到端angularjs應用程序(由angularjs團隊開發)而開發的。 https://github.com/angular/protractor

它具有自己的運行器,您可以通過以下方式安裝:

npm install protractor -g

然后使用以下命令執行亞軍:

protractor /configfile.cfg

無需HTML頁面即可運行測試。

配置文件非常簡單(您可以在源代碼中看到這些選項)。

這樣,您就可以將規范定義為:

// myTest.js
describe('angularjs homepage', function() {
    it('should greet the named user', function() {
        browser.get('http://www.angularjs.org');
        element(by.model('yourName')).sendKeys('Julie');

        var greeting = element(by.binding('yourName'));

        expect(greeting.getText()).toEqual('Hello Julie!');
      });
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM