1 / 19

Code Contracts

Code Contracts. Gunnar Peipman ASP/ASP.NET MVP. Päevakava. Mis on koodilepe ? Koodilepete kasutamine Koodilepped ja dokumentatsioon Koodilepped ja automaattestid Liideste lepped Küsimused ja vastused. Mis on koodilepe. Mis on koodilepe.

Download Presentation

Code Contracts

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Code Contracts Gunnar PeipmanASP/ASP.NET MVP

  2. Päevakava • Mis on koodilepe? • Koodilepetekasutamine • Koodileppedjadokumentatsioon • Koodileppedjaautomaattestid • Liidestelepped • Küsimusedjavastused

  3. Mis on koodilepe

  4. Mis on koodilepe • Koodilepped on keelestsõltumatuviiskirjeldadakooditöötamiseeeldusi .NET keeltes • Koodilepete eesmärgiks on tõhustada koodi testimist koodi töötamise ajal ja kompileerimise eel ning võimaldada koodi paremat dokumenteerimist.

  5. Töövahendid • Code Contracts Standard • Kõik VS versioonid peale Expressi • Binary rewriter, stand-alone library, reference assemblyte loomine • Code Contracts Premium • VS Premium või Ultimate • Kõik Standardi võimalused • Staatiline koodi kontrollimine

  6. Koodilepete tüübid • Pre-condition – eeltingimused, kontrollitakse sisendeid • Post-condition – järeltingimused, kontrollitakse tagastatavat väärtust • Assertion – kohapealne kontroll • Assumption – staatilise leppe eeldus • Object invariant – alati kontrollitav tingimus, mis peab olema täidetud

  7. Lepete kontrollimine • Static • Kontrollitakse kompileerimisel • Leppeid ei sisaldu kompileeritud koodis • Koodilepete rikkumine runtimes lubatud • Runtime • Koodilepped kompileeritakse koodi • Kontrollitakse jooksvalt

  8. Demo Koodilepped ja nende kasutamine

  9. Dokumentatsioon

  10. Dokumenteerimine • Koodilepped saab lisada Visual Studio koodi dokumentatsiooni • Lepped lisatakse peale kompileerimist, algsed failid säilitatakse • Töövahendid: • Sandcastle • Sandcastle Help File Builder

  11. Demo Koodi dokumentatsiooni genereerimine

  12. Testimine Koodilepped ja ühiktestid

  13. Koodilepped ja testid • Koodilepped ja testid pole teineteist välistavad • Koodilepped ja testid on erinevad: • Koodilepped on osa koodist • Koodilepped on osa igast paigaldusest • Teste ei paigaldata kõikidesse keskkondadesse • Testima peab ka koodileppeid

  14. Demo Lepetega koodi testimine

  15. Liideste lepped

  16. Liideste lepped • Koodileppeid saab liideste kaudu jõustada klassidele • Probleem: liidestel puudub keha • Lahendus: lepete klassid ja vastavad atribuudid • Võimaldab luua üldiseid ärireeglite kogumikke

  17. Demo Liideste lepped

  18. Demo Koodilepped ja pärilus

  19. www.eneta.ee/foorum

More Related