Hola, mi nombre es Dmitry Karlovsky y ... me encanta conducir todo tipo de juegos extraños. Cuidado, después de esta charla, es posible que tenga un extraño pero irresistible deseo de eliminar todas las pruebas unit y e2e de su proyecto, porque requieren muchos recursos, pero dan pocas ganancias.
— TechLead Conf 2020. , .
- 25
- 15
? !
, . , , . , . . , , , .
? !
- ,
, .
? !
.
? !
:
, .
, , , , .
:
, .
:
, .
, .
()
— , . , , .
" " "E2E ".
()
— . .
, " " " ".
()
— . , , .
" ". " ", , — , .
, , , .
, . - .
, , .
, .
. . . , .
:
. , , .
sum( 1 , 2 )
function sum( a , b ) {
logger.trace( a , b )
return algebra.apply( '+' , a , b )
}
, .
new Sum( algebra , logger ).exec( 1 , 2 )
class Sum {
constructor(
private algebra,
private logger,
) {}
exec( a , b ) {
logger.trace( a , b )
return algebra.apply( '+' , a , b )
}
}
( ) .
:
B
. 10 , 10 . 10 , .
. :
, . , :
, , .
:
, . , .
:
, , . , .
, , , .
:
- . .
:
. , . , . , , , 100. , TestBed.
10 .
:
, ..
- ""
, , JIT-. .
:
, - - .
DD
, B
. , , , , ( ) ( ).
: ?
— , .
, , , . , , , , .
: !
, , , , .
, MAM , , . . , , .
:
, , , .
. — , . — , . .
:
, , , . , , .
, — , , . , .
:
, . ..
const app = new Todomvc({ context })
const title = guid()
const rowsPrev = app.rows()
app.NewTitle().value( title )
app.NewSubmit().click()
assertEqual( app.rows()[0].title() , title )
assertEqual( app.rows().slice(1) , rowsPrev )
assertEqual( app.NewTitle().value() , '' )
, , . , . , , .
, . , , .
:
...
- NodeJS
: .
:
..
:
, , ..
- ,
- ,
...
, - . , .
. . .
, ..
? | |
---|---|
+ | |
+ | |
+* |
.
...
- web-
- 5
- 300
.
, .
. , , , .
Kent Beck, TDD, , "" , .
:
, .
:
, . , . .
:
. , . . : , .
:
, , , , , . , .
?
- TDD —
- nin-jin/slides —
- habhub.hyoo.ru —
- _jinnin —
- nin_jin —
- 1 — .
- 2 — - , , . . «» ...
- 3 — , , , , .
- 3 — , .
- 3 — , ?
- 4 — , . 2 .
- 4 — , - .
- 5 — , , .
- 5 — .