Programare orientată pe obiecte Testarea Testarea unităŃilor

Programare orientată pe obiecte Testarea Testarea unităŃilor Programare orientată pe obiecte Testarea Testarea unităŃilor

users.utcluj.ro
from users.utcluj.ro More from this publisher
19.06.2013 Views

Serializabil Obiectele care sunt scrise într-un flux de obiecte trebuie să aparŃină unei clase care implementează interfaŃa Serializable. D.e. class BankAccount implements Serializable {...} InterfaŃa Serializable nu are metode. Obiectele care se salvează trebuie să marcheze toate câmpurile neserializabile (d.e. referinŃe la obiecte Thread, OutputStream şi subclasele sale şi Socket) ca transient Serializare: procesul de salvare a obiectelor într-un flux Fiecărui obiect îi este atribuit un număr de serie pe flux Daca acelaşi obiect este salvat de două ori, a doua oară se salvează numai numărul de serie La citire, numerele de serie duplicate sunt restaurate ca referinŃe la acelaşi obiect Demo: serial OOP12 - M. Joldoş - T.U. Cluj 53 API de I/E noi pentru Java Buffer (continuare) OperaŃii put şi get Relative (la poziŃia curentă) sau absolute clear pregăteşte tamponul pentru o secvenŃă de operaŃii channel-read sau put relative: pune limita = capacitate, pozitie = 0. flip pregăteşte tamponul pentru o secvenŃă de operaŃii channelwrite sau get relative: pune limita = pozitie, apoi pozitie = 0. rewind pregăteşte tamponul pentru re-citirea datelor pe care le conŃine deja: lasă limita neschimbată, pune poziŃie = 0. reset Resetează poziŃia tamponului la cea marcată anterior OOP12 - M. Joldoş - T.U. Cluj 55 API de I/E noi pentru Java Buffer (zonă tampon): o secvenŃă liniară de elemente de un tip primitiv precizat Consolidează operaŃiile de I/E Patru proprietăŃi (toate cu valori întotdeauna pozitive) Capacitate: numărul de elemente pe care le conŃine (nu se schimbă) Limita: indexul primului element care nu trebuie scris sau citit PoziŃie: indexul următorului element de citit sau scris Marcaj: index la care se va reseta poziŃia la invocarea metodei reset() Invariant: 0

API de I/E noi pentru Java Zăvoare pentru fişiere (file locks) RestricŃionează accesul la o porŃiune de fişier FileChannel, poziŃie, mărime Exclusive sau partajate Seturi de caractere (charsets) Pachetul java.nio.charset Clasa Charset Metode decode, encode Clasa CharsetDecoder, CharsetEncoder Demo: fileChannel OOP12 - M. Joldoş - T.U. Cluj 57 Rezumat Testarea software testarea funcŃională; proiectarea, planificarea şi testarea cazurilor test harnesses furnizarea intrării pentru teste evaluarea rezultatelor testelor acoperirea testelor testarea unităŃilor de program – JUnit Trasarea execuŃiei unui program Jurnalizarea Depanarea folosirea unui depanator Introducere în I/E Java structura I/E Java clase pentru citire/scriere acces secvenŃial/aleator excepŃii procedură generală de efectuare a I/E Clasa Scanner Noua I/E Java Zone tampon, canale OOP12 - M. Joldoş - T.U. Cluj 58

Serializabil<br />

Obiectele care sunt scrise într-un flux de <strong>obiecte</strong> trebuie să<br />

aparŃină unei clase care implementează interfaŃa<br />

Serializable. D.e.<br />

class BankAccount implements Serializable {...}<br />

InterfaŃa Serializable nu are metode.<br />

Obiectele care se salvează trebuie să marcheze toate<br />

câmpurile neserializabile (d.e. referinŃe la <strong>obiecte</strong> Thread,<br />

OutputStream şi subclasele sale şi Socket) ca<br />

transient<br />

Serializare: procesul de salvare a <strong>obiecte</strong>lor într-un flux<br />

Fiecărui obiect îi este atribuit un număr de serie <strong>pe</strong> flux<br />

Daca acelaşi obiect este salvat de două ori, a doua oară se salvează<br />

numai numărul de serie<br />

La citire, numerele de serie duplicate sunt restaurate ca referinŃe la<br />

acelaşi obiect<br />

Demo: serial<br />

OOP12 - M. Joldoş - T.U. Cluj 53<br />

API de I/E noi <strong>pe</strong>ntru Java<br />

Buffer (continuare)<br />

O<strong>pe</strong>raŃii put şi get<br />

Relative (la poziŃia curentă) sau absolute<br />

clear<br />

pregăteşte tamponul <strong>pe</strong>ntru o secvenŃă de o<strong>pe</strong>raŃii channel-read<br />

sau put relative: pune limita = capacitate, pozitie = 0.<br />

flip<br />

pregăteşte tamponul <strong>pe</strong>ntru o secvenŃă de o<strong>pe</strong>raŃii channelwrite<br />

sau get relative: pune limita = pozitie, apoi pozitie = 0.<br />

rewind<br />

pregăteşte tamponul <strong>pe</strong>ntru re-citirea datelor <strong>pe</strong> care le conŃine<br />

deja: lasă limita neschimbată, pune poziŃie = 0.<br />

reset<br />

Resetează poziŃia tamponului la cea marcată anterior<br />

OOP12 - M. Joldoş - T.U. Cluj 55<br />

API de I/E noi <strong>pe</strong>ntru Java<br />

Buffer (zonă tampon): o secvenŃă liniară de<br />

elemente de un tip primitiv precizat<br />

Consolidează o<strong>pe</strong>raŃiile de I/E<br />

Patru proprietăŃi (toate cu valori întotdeauna pozitive)<br />

Capacitate: numărul de elemente <strong>pe</strong> care le conŃine (nu se<br />

schimbă)<br />

Limita: indexul primului element care nu trebuie scris sau citit<br />

PoziŃie: indexul următorului element de citit sau scris<br />

Marcaj: index la care se va reseta poziŃia la invocarea metodei<br />

reset()<br />

Invariant: 0

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!