');
it('actually does something', function () {
doSomething();
expect($('.somewhere .something').length > 0).to.be.true;
});
});
```
---
## JavaScript の管理
テストするには、テスト対象のオブジェクト/関数にアクセスする必要がある。
- 全てグローバルだとやばい...
- closure の中だと、アクセスできない
```js
// どうやってテストする?
jQuery(function ($) {
function enlarge(selector) {
$(selector).addClass('large');
}
enlarge('.something');
});
```
適度な露出が必要・・・。
---
## Namespace
```js
var M3 = {};
M3.Utils = M3.Utils || {};
(function ($) {
function enlarge(selector) {
$(selector).addClass('large');
}
M3.Utils.enlarge = enlarge;
})(jQuery);
jQuery(function ($) {
M3.Utils.enlarge('.something');
});
```
```js
describe('M3.Utils.enlarge', function () {
useFixture('
');
it('adds large class', function () {
M3.Utils.enlarge('.ear');
expect($('.ear').hasClass('large')).to.be.true;
});
});
```
---
## ちなみに Rails だと・・・
Assets Pipeline あるので、特殊。
### Unit Testing: Konacha
- `rake konacha:run` TDD, CI 向き
- `rake konacha:serve` デバッグ向き
- thin 使わないと、ハングする
(Teaspoon というのの方がいいかも。未調査。)
### E2E Testing: Capybara + Poltergeist
メリットは Rails の test env が使えること。できないと、テスト環境用意して・・・となる。
---
class: center, middle, inverse
## おわり