分形测试

您好,我叫Dmitry Karlovsky,我……喜欢开各种奇怪的游戏。当心,在本次演讲之后,您可能有一种奇怪但不可抗拒的愿望,即从项目中删除所有单元测试和e2e测试,因为它们需要大量资源,但利润却很少。





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 .



:



, ..



  1. ""


, , 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() , '' )


, , . , . , , .



, . , , .



:



...



  1. NodeJS


: .



:



..





:



, , ..



  • ,
  • ,




...





, - . , .



. . .





, ..



?
+
+
+*


.





...



  • web-
  • 5
  • 300


.





, .







. , , , .





Kent Beck, TDD, , "" , .



:





, .



:





, . , . .



:





. , . . : , .



:





, , , , , . , .



?







  • 1 — .
  • 2 — - , , . . «» ...
  • 3 — , , , , .
  • 3 — , .
  • 3 — , ?
  • 4 — , . 2 .
  • 4 — , - .
  • 5 — , , .
  • 5 — .



All Articles