Zacznijmy od prostego przykładu:
function foo() {
eventManager.on('foo', () => {
console.log('foo');
}
}
Prosta funkcja, ale już pojawia się problem. Jak napisać do tego testy jednostkowe ?
describe('foo') {
it(' wywołuję eventManager.on z parametrem funkcji, która wywołuje console.log z parametrem tekstowym', () => {
..
} );
}
Jak widać pojawia się słowo "która" wskazujące, że nie testujemy naprawdę tego co chcieliśmy. Gdybyśmy przepisali to na dwie normalne funkcje, byłoby znacznie prościej.
function foo1() {
eventManager.on( 'foo', foo2);
function foo2(){
console.log('foo');
}
Testy:
describe( 'foo', () => {
it( 'wywołuje eventManager.on z parametrem foo2', () => {
..
}
}
describe( 'foo2', () => {
it( 'wywołuje console.log z parametrem tekstowym, () => {
..
}
}
Jak widać znacznie prościej. Czy z tego powodu że nie da się napisać normalnych testów jednostkowych do funkcji strzałkowych powinno się ich unikać ?