Definujte třídu, která se bude chovat jako soubor, jehož data se převážně drží v paměti.
Do paměťového souboru se dá zapisovat textový obsah. Standardním postupem: Otevřeme soubor pro zápis, zapíšeme potřebná data, soubor zavřememe. Při každém otevření pro zápis se předchozí obsah paměťového souboru vymaže.
Z paměťového souboru se dá jeho předtím zapsaný obsah také přečíst. Opět standardním způsobem: Otevřeme soubor pro čtení, čteme data (text), soubor po skončení práce zavřeme.
Definice metod takovéhoto paměťového souboru je v interface-u IBufferedMemoryStream.
Toto cvičení je na Test Driven Development.
Založte si tedy ve VS řešení, které bude mít dva projekty.
První projekt bude konzolová aplikace, ve které bude výše uvedený interface IBufferedMemoryStream a třída,
která interface implementuje, tedy BufferedMemoryStream. Tato třída však na začátku bude mít všechny metody
interface-u definované pouze jako "stuby", tj. jejich tělo bude prázdné, bude tam pouze throw new NotImplementedException();
a implementaci provedete až později, po naprogramování testů.
Druhý projekt bude testovací projekt nad libovolným frameworkem pro Unit testy (doporučuji např. NUnit nebo Microsoft Test). V tomto projektu definujete testovací třídu BufferedMemoryStreamTest, která otestuje všechny metody třídy BufferedMemoryStream. U složitějších metod testované třídy je možné definovat i vícero testovacích metod, které ověří všechny myslitelné scénáře. Testy se mají psát i pro otestování nevalidních dat nebo nekorektních použití testované třídy.
Důležité:
Abyste mohli třídu BufferedMemoryStream testovat, musíte si do testovacího projektu přidat závislost na tom konzolovém projektu.
Po dokončení implementace testů spusťte celou "test fixture". Výsledky všech testů budou na začátku "červené".
Začněte postupně implementovat jednotlivé metody třídy BufferedMemoryStream a po implementaci jedné dvou metod vždy spusťte sadu testů. Pozorujte, jak postupně přibývají "zelené" výsledky.
Po dokončení celého cvičení můžeme konstatovat, že jste prakticky ověřili metodiku vývoje, které se říká "Test Driven Development".