Testing AngularDart apps

If you're familiar with AngularJS, you've probably already seen the toolchain used to test AngularJS apps. For AngularDart, the toolchain will probably be very similar. Although AngularDart has reached a stable version already, there's not much to offer right now, but we can just take a look at what the future might look like. There are three main tools used in the Angular world:

  • Unit tests: Just like what we're doing in this chapter, we can use unit tests to test some parts of Angular apps.
  • Karma: This is a universal tool that takes your source code and test code and runs them in a browser for you. It's actually a web server that communicates with all browsers that you connect to. It can also automatically watch for changes in your source code and run tests without you running the tests by yourself. Karma isn't an AngularJS-specific tool, but it's used by its developers as well. There's a plugin for Dart already at https://github.com/karma-runner/karma-dart.
  • Protractor: It's specifically designed to work with AngularJS. It uses WebDriverJS, which basically lets you run a browser without any graphical interface in CLI, where you can run tests. It can also emulate user inputs such as key presses or mouse clicks and even file uploads. Protractor "understands" AngularJS and lets you do things such as selecting elements by their Angular bindings or specific directives.

    There's an extension of Protractor for Dart apps but it's in a very early stage of development, so this is probably the biggest problem with testing AngularDart apps right now (this was also mentioned by the AngularDart developer James Deboer at ng-conf 2014 at https://www.youtube.com/watch?v=RqKUTGB-CxA).

Automatic testing AngularDart without better tools is tedious when you have no control over Angular's digest cycle, and you'll probably end up calling new Timer() a lot to let Angular update its internal state and then test what you need, which is far from ideal.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
3.133.124.21