82 lines
2.1 KiB
Markdown
82 lines
2.1 KiB
Markdown
# Overview of dev_server testing
|
|
|
|
## Introduction
|
|
|
|
Catapult has a simple, optionally asynchronous, JavaScript testing framework.
|
|
The framework is located in `/tracing/base/unittest/`.
|
|
|
|
Test files exist in `<filename>_test.html` files where, typically, filename
|
|
will match the name of the file being tested. The tests sit in the same
|
|
folder as their respective files.
|
|
|
|
## Test Creation
|
|
|
|
The general structure of tests is (assuming a file of ui/foo_test.html):
|
|
|
|
```
|
|
<link rel="import" href="/ui/foo.html">
|
|
<script>
|
|
'use strict';
|
|
|
|
tr.b.unittest.testSuite(function() {
|
|
test('instantiate', function() {
|
|
var myFoo = ui.Foo();
|
|
this.addHTMLOutput(myFoo);
|
|
});
|
|
|
|
test('somethingElse', function() {
|
|
});
|
|
});
|
|
```
|
|
|
|
Generally, there is one test suite per file (there is an assumption inside the
|
|
code that this is true).
|
|
|
|
If you add something to the DOM with `appendChild` you should remove it. The
|
|
exception is if you use `this.addHTMLOutput(element)`. If you use that, then
|
|
you should be good, the content will get shown if there is an error,
|
|
otherwise it's hidden.
|
|
|
|
The current tests follow the convention that if the test is there just to draw
|
|
things, to name them with a prefix of instantiate. So, `instantiate`,
|
|
`instantiate_multiRow`, etc.
|
|
|
|
## Chai
|
|
|
|
Catapult uses [Chai](http://chaijs.com) for assertions. We are using Chai's
|
|
[TDD `assert` style](http://chaijs.com/api/assert/).
|
|
|
|
## Execution
|
|
|
|
You'll need to start a dev_server to run the tests
|
|
```
|
|
$ bin/run_dev_server
|
|
```
|
|
|
|
After you start the dev_server, it'll be available at http://localhost:8003.
|
|
You'll see links to run unit tests for all projects. We'll use the `tracing/`
|
|
project as an example below.
|
|
|
|
### Running all tests
|
|
|
|
```
|
|
http://localhost:8003/tracing/tests.html
|
|
```
|
|
|
|
### Running an individual test suite (such as `ui/foo_test.js`)
|
|
|
|
```
|
|
http://localhost:8003/tracing/tests.html?testSuiteName=ui.foo
|
|
```
|
|
|
|
### Running tests named blah
|
|
|
|
```
|
|
http://localhost:8003/tracing/tests.html?testFilterString=blah
|
|
```
|
|
|
|
## Options
|
|
|
|
If you select the `small format` option on the main test page and reload then
|
|
the test output will be condensed to a lot smaller, making it easier to see
|
|
errors without having to scroll the screen.
|