Hello, my name is Dmitry Karlovsky and I ... love to drive all kinds of strange game. Beware, after this talk you may have a strange, but irresistible desire to remove all unit and e2e tests from your project, because they require a lot of resources, but give little profit.

โ TechLead Conf 2020. , .
- 25
- 15
? !

, . , , . , . . , , , .
? !
- ,
, .
? !

.
? !
D, , โ . , .
:
, .

, , , , .
:

, .
:

, .
, .
()
โ , . , , .

" " "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
.
, .

. , , , .
- PiterJS#44: , @
- Is TDD Dead?: My personal practice is that I mock almost nothing @ Kent Beck
Kent Beck, TDD, , "" , .
:

, .
:

, . , . .
:

. , . . : , .
:

, , , , , . , .
?
- TDD โ
- nin-jin/slides โ
- habhub.hyoo.ru โ
- _jinnin โ
- nin_jin โ
- 1 โ .
- 2 โ - , , . . ยซยป ...
- 3 โ , , , , .
- 3 โ , .
- 3 โ , ?
- 4 โ , . 2 .
- 4 โ , - .
- 5 โ , , .
- 5 โ .