
āĻĒāϰā§āĻā§āώāĻžāϰ āĻĒā§āϰāĻāĻžāϰāĻā§āĻĻ
āĻāĻāĻāĻŋ āĻĒāϰā§āĻā§āώāĻž āĻāĻŋ? āĻāĻāĻāĻŋāĻĒāĻŋāĻĄāĻŋāϝāĻŧāĻžāϰ āĻŽāϤā§: "āϏāĻĢā§āĻāĻāϝāĻŧā§āϝāĻžāϰ āĻĒāϰā§āĻā§āώāĻžāϝāĻŧ āĻāĻā§āϰāĻšā§āϰ āĻāĻ āĻŦāĻž āĻāĻāĻžāϧāĻŋāĻ āĻŦā§āĻļāĻŋāώā§āĻā§āϝā§āϰ āĻŽā§āϞā§āϝāĻžāϝāĻŧāύ āĻāϰāĻžāϰ āĻāύā§āϝ āĻāĻāĻāĻŋ āϏāĻĢā§āĻāĻāϝāĻŧā§āϝāĻžāϰ āĻāĻĒāĻžāĻĻāĻžāύ āĻŦāĻž āϏāĻŋāϏā§āĻā§āĻŽ āĻāĻĒāĻžāĻĻāĻžāύ āĻāĻžāϰā§āϝāĻāϰ āĻāϰāĻž āĻāĻĄāĻŧāĻŋāϤāĨ¤" āĻ āύā§āϝ āĻāĻĨāĻžāϝāĻŧ, āĻāĻāĻŋ āύāĻŋāϰā§āĻĻāĻŋāώā§āĻ āĻĒāϰāĻŋāϏā§āĻĨāĻŋāϤāĻŋāϤ⧠āĻāĻŽāĻžāĻĻā§āϰ āϏāĻŋāϏā§āĻā§āĻŽā§āϰ āϏāĻ āĻŋāĻāϤāĻž āĻĒāϰā§āĻā§āώāĻž āĻāϰā§āĨ¤ āĻ āĻŋāĻ āĻāĻā§, āĻāϏā§āύ āĻĻā§āĻāĻŋ āϏāĻžāϧāĻžāϰāĻŖāĻāĻžāĻŦā§ āĻā§ āϧāϰāĻŖā§āϰ āĻĒāϰā§āĻā§āώāĻž āϰāϝāĻŧā§āĻā§:- āĻāĻāύāĻŋāĻ āĻā§āϏā§āĻāĻŋāĻ â āĻĒāϰā§āĻā§āώāĻž āϝāĻžāϰ āĻāĻĻā§āĻĻā§āĻļā§āϝ āĻšāϞ āϏāĻŋāϏā§āĻā§āĻŽā§āϰ āĻĒā§āϰāϤāĻŋāĻāĻŋ āĻŽāĻĄāĻŋāĻāϞ āĻāϞāĻžāĻĻāĻžāĻāĻžāĻŦā§ āĻĒāϰā§āĻā§āώāĻž āĻāϰāĻžāĨ¤ āĻāĻ āĻĒāϰā§āĻā§āώāĻžāĻā§āϞāĻŋ āϏāĻŋāϏā§āĻā§āĻŽā§āϰ āĻā§āώā§āĻĻā§āϰāϤāĻŽ āĻĒāĻžāϰāĻŽāĻžāĻŖāĻŦāĻŋāĻ āĻ āĻāĻļāĻā§āϞāĻŋāϤ⧠āĻĒā§āϰāϝāĻŧā§āĻ āĻāϰāĻž āĻāĻāĻŋāϤ, āϝā§āĻŽāύ āĻŽāĻĄāĻŋāĻāϞāĨ¤
- āϏāĻŋāϏā§āĻā§āĻŽ āĻā§āϏā§āĻāĻŋāĻ - āĻ ā§āϝāĻžāĻĒā§āϞāĻŋāĻā§āĻļāύā§āϰ āĻāĻāĻāĻŋ āĻŦāĻĄāĻŧ āĻ āĻāĻļ āĻŦāĻž āϏāĻžāĻŽāĻā§āϰāĻŋāĻāĻāĻžāĻŦā§ āϏāĻŋāϏā§āĻā§āĻŽā§āϰ āĻ āĻĒāĻžāϰā§āĻļāύ āĻĒāϰā§āĻā§āώāĻž āĻāϰāĻžāϰ āĻāύā§āϝ āĻāĻā§āĻ-āϏā§āϤāϰā§āϰ āĻĒāϰā§āĻā§āώāĻžāĨ¤
- āϰāĻŋāĻā§āϰā§āĻļāύ āĻā§āϏā§āĻāĻŋāĻ - āĻĒāϰā§āĻā§āώāĻž āϝāĻž āύāϤā§āύ āĻŦā§āĻļāĻŋāώā§āĻā§āϝ āĻŦāĻž āĻŦāĻžāĻ āĻĢāĻŋāĻā§āϏāĻā§āϞāĻŋ āĻ ā§āϝāĻžāĻĒā§āϞāĻŋāĻā§āĻļāύā§āϰ āĻŦāĻŋāĻĻā§āϝāĻŽāĻžāύ āĻāĻžāϰā§āϝāĻāĻžāϰāĻŋāϤāĻžāĻā§ āĻĒā§āϰāĻāĻžāĻŦāĻŋāϤ āĻāϰ⧠āĻŦāĻž āĻĒā§āϰāĻžāύ⧠āĻŦāĻžāĻāĻā§āϞāĻŋ āĻĒā§āϰāĻŦāϰā§āϤāύ āĻāϰ⧠āĻāĻŋāύāĻž āϤāĻž āĻĒāϰā§āĻā§āώāĻž āĻāϰāϤ⧠āĻŦā§āϝāĻŦāĻšā§āϤ āĻšāϝāĻŧāĨ¤
- āĻāĻžāϰā§āϝāĻāϰ⧠āĻĒāϰā§āĻā§āώāĻž - āĻ
ā§āϝāĻžāĻĒā§āϞāĻŋāĻā§āĻļāύā§āϰ āĻāĻāĻāĻŋ āĻ
āĻāĻļ āϏā§āĻĒā§āϏāĻŋāĻĢāĻŋāĻā§āĻļāύ, āĻŦā§āϝāĻŦāĻšāĻžāϰāĻāĻžāϰā§āϰ āĻāϞā§āĻĒ āĻāϤā§āϝāĻžāĻĻāĻŋāϤ⧠āĻŦāϰā§āĻŖāĻŋāϤ āĻĒā§āϰāϝāĻŧā§āĻāύā§āϝāĻŧāϤāĻžāĻā§āϞāĻŋ āĻĒā§āϰāĻŖ āĻāϰ⧠āĻāĻŋāύāĻž āϤāĻž āĻĒāϰā§āĻā§āώāĻž āĻāϰāĻžāĨ¤
āĻāĻžāϰā§āϝāĻāϰ⧠āĻĒāϰā§āĻā§āώāĻžāϰ āĻĒā§āϰāĻāĻžāϰāĻā§āϞāĻŋ:
- āĻšā§āϝāĻŧāĻžāĻāĻ-āĻŦāĻā§āϏ āĻā§āϏā§āĻāĻŋāĻ â āϏāĻŋāϏā§āĻā§āĻŽā§āϰ āĻ āĻā§āϝāύā§āϤāϰā§āĻŖ āĻŦāĻžāϏā§āϤāĻŦāĻžāϝāĻŧāύ āĻāĻžāύāĻžāϰ āϏāĻŽāϝāĻŧ āĻ ā§āϝāĻžāĻĒā§āϞāĻŋāĻā§āĻļāύā§āϰ āĻāĻāĻāĻŋ āĻ āĻāĻļ āĻĒā§āϰāϝāĻŧā§āĻāύā§āϝāĻŧāϤāĻž āĻĒā§āϰāĻŖ āĻāϰ⧠āĻāĻŋāύāĻž āϤāĻž āĻĒāϰā§āĻā§āώāĻž āĻāϰāĻž;
- āĻŦā§āϞā§āϝāĻžāĻ-āĻŦāĻā§āϏ āĻĒāϰā§āĻā§āώāĻž â āϏāĻŋāϏā§āĻā§āĻŽā§āϰ āĻ āĻā§āϝāύā§āϤāϰā§āĻŖ āĻŦāĻžāϏā§āϤāĻŦāĻžāϝāĻŧāύ āύāĻž āĻā§āύā§āĻ āĻ ā§āϝāĻžāĻĒā§āϞāĻŋāĻā§āĻļāύā§āϰ āĻāĻāĻāĻŋ āĻ āĻāĻļ āĻĒā§āϰāϝāĻŧā§āĻāύā§āϝāĻŧāϤāĻž āĻĒā§āϰāĻŖ āĻāϰ⧠āĻāĻŋāύāĻž āϤāĻž āĻĒāϰā§āĻā§āώāĻž āĻāϰāĻžāĨ¤
- āĻĒāĻžāϰāĻĢāϰāĻŽā§āϝāĻžāύā§āϏ āĻā§āϏā§āĻāĻŋāĻ - āĻāĻāĻāĻŋ āύāĻŋāϰā§āĻĻāĻŋāώā§āĻ āϞā§āĻĄā§āϰ āĻ āϧā§āύ⧠āϏāĻŋāϏā§āĻā§āĻŽ āĻŦāĻž āϏāĻŋāϏā§āĻā§āĻŽā§āϰ āĻ āĻāĻļ āĻā§āĻāĻžāĻŦā§ āĻāĻžāĻ āĻāϰ⧠āϤāĻž āύāĻŋāϰā§āϧāĻžāϰāĻŖ āĻāϰāĻžāϰ āĻāύā§āϝ āϞāĻŋāĻāĻŋāϤ āĻĒāϰā§āĻā§āώāĻžāĨ¤
- āϞā§āĻĄ āĻā§āϏā§āĻāĻŋāĻ â āϏā§āĻā§āϝāĻžāύā§āĻĄāĻžāϰā§āĻĄ āϞā§āĻĄā§āϰ āĻ āϧā§āύ⧠āϏāĻŋāϏā§āĻā§āĻŽā§āϰ āϏā§āĻĨāĻžāϝāĻŧāĻŋāϤā§āĻŦ āĻĒāϰā§āĻā§āώāĻž āĻāϰāĻžāϰ āĻāύā§āϝ āĻāĻŦāĻ āĻ ā§āϝāĻžāĻĒā§āϞāĻŋāĻā§āĻļāύāĻāĻŋ āĻāĻāύāĻ āϏāĻ āĻŋāĻāĻāĻžāĻŦā§ āĻāĻžāĻ āĻāϰ⧠āĻāĻŽāύ āϏāϰā§āĻŦā§āĻā§āĻ āϞā§āĻĄ āĻā§āĻāĻā§ āĻŦā§āϰ āĻāϰāĻžāϰ āĻāύā§āϝ āĻĒāϰāĻŋāĻāϞā§āĻĒāĻŋāϤ āĻĒāϰā§āĻā§āώāĻžāĻā§āϞāĻŋāĨ¤
- āϏā§āĻā§āϰā§āϏ āĻā§āϏā§āĻāĻŋāĻ - āύāύ-āϏā§āĻā§āϝāĻžāύā§āĻĄāĻžāϰā§āĻĄ āϞā§āĻĄā§āϰ āĻ āϧā§āύ⧠āĻ ā§āϝāĻžāĻĒā§āϞāĻŋāĻā§āĻļāύā§āϰ āĻāĻžāϰā§āϝāĻāĻžāϰāĻŋāϤāĻž āĻĒāϰā§āĻā§āώāĻž āĻāϰāĻžāϰ āĻāύā§āϝ āĻāĻŦāĻ āϏāĻŋāϏā§āĻā§āĻŽā§āϰ āĻŦā§āϝāϰā§āĻĨāϤāĻžāϰ āĻāĻā§ āϏāϰā§āĻŦāĻžāϧāĻŋāĻ āϞā§āĻĄ āύāĻŋāϰā§āϧāĻžāϰāĻŖ āĻāϰāĻžāϰ āĻāύā§āϝ āĻĒāϰāĻŋāĻāϞā§āĻĒāĻŋāϤ āĻĒāϰā§āĻā§āώāĻžāĨ¤
- āύāĻŋāϰāĻžāĻĒāϤā§āϤāĻž āĻĒāϰā§āĻā§āώāĻž â āϏāĻŋāϏā§āĻā§āĻŽā§āϰ āύāĻŋāϰāĻžāĻĒāϤā§āϤāĻž āĻĒāϰā§āĻā§āώāĻž āĻāϰāϤ⧠āĻŦā§āϝāĻŦāĻšā§āϤ āĻĒāϰā§āĻā§āώāĻž (āĻšā§āϝāĻžāĻāĻžāϰ, āĻāĻžāĻāϰāĻžāϏ, āĻā§āĻĒāύā§āϝāĻŧ āϤāĻĨā§āϝ⧠āĻ āύāύā§āĻŽā§āĻĻāĻŋāϤ āĻ ā§āϝāĻžāĻā§āϏā§āϏ āĻāĻŦāĻ āĻ āύā§āϝāĻžāύā§āϝ āĻāύāύā§āĻĻāĻĻāĻžāϝāĻŧāĻ āĻāĻā§āϰāĻŽāĻŖ āĻĨā§āĻā§)āĨ¤
- āϏā§āĻĨāĻžāύā§āϝāĻŧāĻāϰāĻŖ āĻĒāϰā§āĻā§āώāĻž - āĻ ā§āϝāĻžāĻĒā§āϞāĻŋāĻā§āĻļāύā§āϰ āϏā§āĻĨāĻžāύā§āϝāĻŧāĻāϰāĻŖā§āϰ āĻĒāϰā§āĻā§āώāĻžāĨ¤
- āĻŦā§āϝāĻŦāĻšāĻžāϰāϝā§āĻā§āϝāϤāĻž āĻĒāϰā§āĻā§āώāĻž - āĻŦā§āϝāĻŦāĻšāĻžāϰāϝā§āĻā§āϝāϤāĻž, āĻŦā§āϧāĻāĻŽā§āϝāϤāĻž, āĻāĻāϰā§āώāĻŖā§āϝāĻŧāϤāĻž āĻāĻŦāĻ āĻļā§āĻāĻžāϰ āϝā§āĻā§āϝāϤāĻž āĻĒāϰā§āĻā§āώāĻž āĻāϰāĻžāϰ āϞāĻā§āώā§āϝ⧠āĻĒāϰā§āĻā§āώāĻžāĨ¤

- āĻāĻāύāĻŋāĻ â āĻāĻ āĻŦāĻŋāĻāĻžāĻāĻāĻŋ āĻāĻāύāĻŋāĻ āĻĒāϰā§āĻā§āώāĻžāĻā§ āĻŦā§āĻāĻžāϝāĻŧ, āϝāĻž āĻ
ā§āϝāĻžāĻĒā§āϞāĻŋāĻā§āĻļāύā§āϰ āĻŦāĻŋāĻāĻŋāύā§āύ āϏā§āϤāϰ⧠āĻĒā§āϰāϝāĻŧā§āĻ āĻāϰāĻž āĻšāϝāĻŧāĨ¤ āϤāĻžāϰāĻž āĻĒā§āϰāϝāĻŧā§āĻ āϝā§āĻā§āϤāĻŋāĻŦāĻŋāĻĻā§āϝāĻžāϰ āĻā§āώā§āĻĻā§āϰāϤāĻŽ āĻŦāĻŋāĻāĻžāĻā§āϝ āĻāĻāĻ āĻĒāϰā§āĻā§āώāĻž āĻāϰā§āĨ¤ āĻāĻĻāĻžāĻšāϰāĻŖāϏā§āĻŦāϰā§āĻĒ, āĻā§āϞāĻžāϏ, āĻāĻŋāύā§āϤ⧠āĻĒā§āϰāĻžāϝāĻŧāĻļāĻ āĻĒāĻĻā§āϧāϤāĻŋāĨ¤ āĻāĻ āĻĒāϰā§āĻā§āώāĻžāĻā§āϞāĻŋ āϏāĻžāϧāĻžāϰāĻŖāϤ āĻŦāĻžāĻšā§āϝāĻŋāĻ āϝā§āĻā§āϤāĻŋ āĻĨā§āĻā§ āϝāĻž āĻĒāϰā§āĻā§āώāĻž āĻāϰāĻž āĻšāϝāĻŧ āϤāĻž āĻŦāĻŋāĻā§āĻāĻŋāύā§āύ āĻāϰāĻžāϰ āĻāύā§āϝ āϝāϤāĻāĻž āϏāĻŽā§āĻāĻŦ āĻā§āώā§āĻāĻž āĻāϰā§āĨ¤ āĻ
āϰā§āĻĨāĻžā§, āϤāĻžāϰāĻž āĻāĻ āĻŦāĻŋāĻā§āϰāĻŽ āϤā§āϰāĻŋ āĻāϰāĻžāϰ āĻā§āώā§āĻāĻž āĻāϰ⧠āϝ⧠āĻŦāĻžāĻāĻŋ āĻ
ā§āϝāĻžāĻĒā§āϞāĻŋāĻā§āĻļāύāĻāĻŋ āĻĒā§āϰāϤā§āϝāĻžāĻļāĻž āĻ
āύā§āϝāĻžāϝāĻŧā§ āĻāϞāĻā§āĨ¤
āĻāĻ āĻĒāϰā§āĻā§āώāĻžāĻā§āϞāĻŋ āϏāϰā§āĻŦāĻĻāĻž āĻĒā§āϰāĻā§āϰ āĻšāĻāϝāĻŧāĻž āĻāĻāĻŋāϤ (āĻ āύā§āϝāĻžāύā§āϝ āϧāϰāĻŖā§āϰ āĻā§āϝāĻŧā§ āĻŦā§āĻļāĻŋ), āϝā§āĻšā§āϤ⧠āϤāĻžāϰāĻž āĻā§āĻ āĻā§āĻāϰ⧠āĻĒāϰā§āĻā§āώāĻž āĻāϰ⧠āĻāĻŦāĻ āĻā§āĻŦ āĻšāĻžāϞāĻāĻž āĻāĻāύā§āϰ, āĻĒā§āϰāĻā§āϰ āϏāĻāϏā§āĻĨāĻžāύ āĻā§āϰāĻšāĻŖ āĻāϰ⧠āύāĻž (āĻ āϰā§āĻĨāĻžā§ RAM āĻāĻŦāĻ āϏāĻŽāϝāĻŧ)āĨ¤
- āĻāύā§āĻāĻŋāĻā§āϰā§āĻļāύ â āĻāĻ āĻŦāĻŋāĻāĻžāĻāĻāĻŋ āĻāύā§āĻāĻŋāĻā§āϰā§āĻļāύ āĻā§āϏā§āĻāĻŋāĻāĻā§ āĻŦā§āĻāĻžāϝāĻŧāĨ¤ āĻāĻ āĻĒāϰā§āĻā§āώāĻžāĻāĻŋ āϏāĻŋāϏā§āĻā§āĻŽā§āϰ āĻŦāĻĄāĻŧ āĻ
āĻāĻļāĻā§āϞāĻŋ āĻĒāϰā§āĻā§āώāĻž āĻāϰā§āĨ¤ āĻ
āϰā§āĻĨāĻžā§, āĻāĻāĻŋ āĻšāϝāĻŧ āϝā§āĻā§āϤāĻŋāϰ āĻŦāĻŋāĻāĻŋāύā§āύ āĻ
āĻāĻļāĻā§ āĻāĻāϤā§āϰāĻŋāϤ āĻāϰ⧠(āĻŦā§āĻļ āĻāĻŋāĻā§ āĻĒāĻĻā§āϧāϤāĻŋ āĻŦāĻž āĻā§āϞāĻžāϏ), āĻ
āĻĨāĻŦāĻž āĻāĻāĻŋ āĻāĻāĻāĻŋ āĻŦāĻžāĻšā§āϝāĻŋāĻ āĻāĻĒāĻžāĻĻāĻžāύā§āϰ āϏāĻžāĻĨā§ āĻŽāĻŋāĻĨāϏā§āĻā§āϰāĻŋāϝāĻŧāĻž āϏāĻ āĻŋāĻāϤāĻž āĻĒāϰā§āĻā§āώāĻž āĻāϰā§āĨ¤ āĻāĻ āĻĒāϰā§āĻā§āώāĻžāĻā§āϞāĻŋ āϏāĻžāϧāĻžāϰāĻŖāϤ āĻāĻāύāĻŋāĻ āĻĒāϰā§āĻā§āώāĻžāϰ āĻā§āϝāĻŧā§ āĻā§āĻ āĻšāϝāĻŧ āĻāĻžāϰāĻŖ āϏā§āĻā§āϞāĻŋ āĻāĻžāϰā§āĨ¤
āĻāĻāĻāĻŋ āĻāύā§āĻāĻŋāĻā§āϰā§āĻļāύ āĻĒāϰā§āĻā§āώāĻžāϰ āĻāĻāĻāĻŋ āĻāĻĻāĻžāĻšāϰāĻŖ āĻāĻāĻāĻŋ āĻĄāĻžāĻāĻžāĻŦā§āϏā§āϰ āϏāĻžāĻĨā§ āϏāĻāϝā§āĻ āϏā§āĻĨāĻžāĻĒāύ āĻāĻŦāĻ āĻāĻāĻŋāϰ āϏāĻžāĻĨā§ āĻāĻžāĻ āĻāϰāĻžāϰ āĻāύā§āϝ āĻĒāĻĻā§āϧāϤāĻŋāϰ āĻ āĻĒāĻžāϰā§āĻļāύā§āϰ āϏāĻ āĻŋāĻāϤāĻž āĻĒāϰā§āĻā§āώāĻž āĻāϰāĻž āĻšāϤ⧠āĻĒāĻžāϰā§āĨ¤
- UI â āĻāĻ āĻŦāĻŋāĻāĻžāĻāĻāĻŋ āĻāĻŽāύ āĻĒāϰā§āĻā§āώāĻžāĻā§āϞāĻŋāĻā§ āĻŦā§āĻāĻžāϝāĻŧ āϝāĻž āĻŦā§āϝāĻŦāĻšāĻžāϰāĻāĻžāϰ⧠āĻāύā§āĻāĻžāϰāĻĢā§āϏā§āϰ āĻāĻžāϰā§āϝāĻāĻžāϰāĻŋāϤāĻž āĻĒāϰā§āĻā§āώāĻž āĻāϰā§āĨ¤ āĻāĻā§āϞāĻŋ āĻ
ā§āϝāĻžāĻĒā§āϞāĻŋāĻā§āĻļāύā§āϰ āϏāĻŽāϏā§āϤ āϏā§āϤāϰ⧠āϝā§āĻā§āϤāĻŋāĻā§ āĻāĻĄāĻŧāĻŋāϤ āĻāϰā§, āϤāĻžāĻ āĻāĻā§āϞāĻŋāĻā§ āĻļā§āώ āĻĨā§āĻā§ āĻļā§āώ āĻĒāϰā§āĻā§āώāĻžāĻ āĻŦāϞāĻž āĻšāϝāĻŧāĨ¤ āĻāĻāĻāĻŋ āύāĻŋāϝāĻŧāĻŽ āĻšāĻŋāϏāĻžāĻŦā§, āϤāĻžāĻĻā§āϰ āĻŽāϧā§āϝ⧠āĻ
āύā§āĻ āĻāĻŽ, āĻāĻžāϰāĻŖ āϤāĻžāϰāĻž āϏāĻŦāĻā§āϝāĻŧā§ āĻāώā§āĻāĻāϰ āĻāĻŦāĻ āĻ
āĻŦāĻļā§āϝāĻ āϏāĻŦāĻā§āϝāĻŧā§ āĻĒā§āϰāϝāĻŧā§āĻāύā§āϝāĻŧ (āĻŦā§āϝāĻŦāĻšā§āϤ) āĻĒāĻžāĻĨāĻā§āϞāĻŋ āĻĒāϰā§āĻā§āώāĻž āĻāϰāϤ⧠āĻšāĻŦā§āĨ¤
āĻāĻĒāϰā§āϰ āĻāĻŦāĻŋāϤā§, āĻāĻŽāϰāĻž āĻĻā§āĻāϤ⧠āĻĒāĻžāĻā§āĻāĻŋ āϝ⧠āϤā§āϰāĻŋāĻā§āĻā§āϰ āĻŦāĻŋāĻāĻŋāύā§āύ āĻ āĻāĻļā§āϰ āĻāĻāĻžāϰ āĻĒāϰāĻŋāĻŦāϰā§āϤāĻŋāϤ āĻšāϝāĻŧ: āĻŦāĻžāϏā§āϤāĻŦ āĻāĻžāĻā§āϰ āĻŦāĻŋāĻāĻŋāύā§āύ āϧāϰāĻŖā§āϰ āĻĒāϰā§āĻā§āώāĻžāϰ āϏāĻāĻā§āϝāĻžāϝāĻŧ āĻĒā§āϰāĻžāϝāĻŧ āĻāĻāĻ āĻ āύā§āĻĒāĻžāϤ āĻŦāĻŋāĻĻā§āϝāĻŽāĻžāύāĨ¤
āĻāĻ āĻāĻŽāϰāĻž āϏāĻŦāĻā§āϝāĻŧā§ āϏāĻžāϧāĻžāϰāĻŖ āĻĒāϰā§āĻā§āώāĻžāĻā§āϞāĻŋ, āĻāĻāύāĻŋāĻ āĻĒāϰā§āĻā§āώāĻžāĻā§āϞāĻŋāĻā§ āĻāύāĻŋāώā§āĻ āĻāĻžāĻŦā§ āĻĻā§āĻāĻŦ, āϝā§āĻšā§āϤ⧠āϏāĻŽāϏā§āϤ āϏā§āĻŦ-āϏāĻŽā§āĻŽāĻžāύ⧠āĻāĻžāĻāĻž āĻŦāĻŋāĻāĻžāĻļāĻāĻžāϰā§āĻĻā§āϰ āĻŽā§āϞāĻŋāĻ āϏā§āϤāϰ⧠āϏā§āĻā§āϞāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāϤ⧠āϏāĻā§āώāĻŽ āĻšāĻāϝāĻŧāĻž āĻāĻāĻŋāϤāĨ¤
āĻāĻāύāĻŋāĻ āĻĒāϰā§āĻā§āώāĻžāϰ āĻŽā§āϞ āϧāĻžāϰāĻŖāĻž
āĻĒāϰā§āĻā§āώāĻžāϰ āĻāĻāĻžāϰā§āĻ (āĻā§āĻĄ āĻāĻāĻžāϰā§āĻ) āĻšāϞ āĻāĻāĻāĻŋ āĻ ā§āϝāĻžāĻĒā§āϞāĻŋāĻā§āĻļāύ āĻāϤāĻāĻž āĻāĻžāϞāĻāĻžāĻŦā§ āĻĒāϰā§āĻā§āώāĻž āĻāϰāĻž āĻšāϝāĻŧ āϤāĻžāϰ āĻāĻāĻāĻŋ āĻĒā§āϰāϧāĻžāύ āĻĒāϰāĻŋāĻŽāĻžāĻĒāĨ¤ āĻāĻāĻŋ āĻā§āĻĄā§āϰ āĻļāϤāĻžāĻāĻļ āϝāĻž āĻĒāϰā§āĻā§āώāĻž āĻĻā§āĻŦāĻžāϰāĻž āĻāĻā§āĻāĻžāĻĻāĻŋāϤ (0-100%)āĨ¤ āĻ āύā§āĻļā§āϞāύā§, āĻ āύā§āĻā§ āĻāĻ āĻļāϤāĻžāĻāĻļāĻā§ āϤāĻžāĻĻā§āϰ āϞāĻā§āώā§āϝ āĻšāĻŋāϏāĻžāĻŦā§ āĻ āύā§āϏāϰāĻŖ āĻāϰāĻā§āĨ¤ āĻāĻāĻŋ āĻāĻŽāύ āĻāĻŋāĻā§ āϝāĻžāϰ āϏāĻžāĻĨā§ āĻāĻŽāĻŋ āĻāĻāĻŽāϤ āύāĻ, āϝā§āĻšā§āϤ⧠āĻāϰ āĻŽāĻžāύ⧠āĻĒāϰā§āĻā§āώāĻžāĻā§āϞāĻŋ āϝā§āĻāĻžāύ⧠āĻĒā§āϰāϝāĻŧā§āĻāύ āĻšāϝāĻŧ āύāĻž āϏā§āĻāĻžāύ⧠āĻĒā§āϰāϝāĻŧā§āĻ āĻāϰāĻž āĻļā§āϰ⧠āĻšāϝāĻŧāĨ¤ āĻāĻĻāĻžāĻšāϰāĻŖāϏā§āĻŦāϰā§āĻĒ, āϧāϰā§āύ āĻāĻŽāĻžāĻĻā§āϰ āĻĒāϰāĻŋāώā§āĻŦāĻžāϤ⧠āĻ āϤāĻŋāϰāĻŋāĻā§āϤ āϝā§āĻā§āϤāĻŋ āĻāĻžāĻĄāĻŧāĻžāĻ āϏā§āĻā§āϝāĻžāύā§āĻĄāĻžāϰā§āĻĄ CRUD (āϤā§āϰāĻŋ/āĻā§āĻ/āĻāĻĒāĻĄā§āĻ/āĻŽā§āĻā§āύ) āĻ āĻĒāĻžāϰā§āĻļāύ āĻāĻā§āĨ¤ āĻāĻ āĻĒāĻĻā§āϧāϤāĻŋāĻā§āϞāĻŋ āϏāĻŽā§āĻĒā§āϰā§āĻŖāϰā§āĻĒā§ āĻŽāϧā§āϝāϏā§āĻĨāϤāĻžāĻāĻžāϰ⧠āϝāĻž āϏāĻāĻā§āϰāĻšāϏā§āĻĨāϞā§āϰ āϏāĻžāĻĨā§ āĻāĻžāĻ āĻāϰāĻž āϏā§āϤāϰ⧠āĻāĻžāĻ āĻ āϰā§āĻĒāĻŖ āĻāϰā§āĨ¤ āĻāĻ āĻĒāϰāĻŋāϏā§āĻĨāĻŋāϤāĻŋāϤā§, āĻāĻŽāĻžāĻĻā§āϰ āĻĒāϰā§āĻā§āώāĻž āĻāϰāĻžāϰ āĻāĻŋāĻā§āĻ āύā§āĻ, āϏāĻŽā§āĻāĻŦāϤ āĻĒā§āϰāĻĻāϤā§āϤ āĻĒāĻĻā§āϧāϤāĻŋāĻāĻŋ āĻāĻāĻāĻŋ DAO āĻĒāĻĻā§āϧāϤāĻŋāĻā§ āĻāϞ āĻāϰ⧠āĻāĻŋāύāĻž, āϤāĻŦā§ āĻāĻāĻŋ āĻāĻāĻāĻŋ āϰāϏāĻŋāĻāϤāĻžāĨ¤ āĻ āϤāĻŋāϰāĻŋāĻā§āϤ āϏāϰāĻā§āĻāĻžāĻŽāĻā§āϞāĻŋ āϏāĻžāϧāĻžāϰāĻŖāϤ āĻĒāϰā§āĻā§āώāĻžāϰ āĻāĻāĻžāϰā§āĻ āĻŽā§āϞā§āϝāĻžāϝāĻŧāύ āĻāϰāϤ⧠āĻŦā§āϝāĻŦāĻšā§āϤ āĻšāϝāĻŧ: JaCoCo, Cobertura, Clover, Emma, ââāĻāϤā§āϝāĻžāĻĻāĻŋāĨ¤ āĻāĻ āĻŦāĻŋāώāϝāĻŧā§āϰ āĻāϰāĻ āĻŦāĻŋāĻļāĻĻ āĻ āϧā§āϝāϝāĻŧāύā§āϰ āĻāύā§āϝ,- āĻŽāĻŋāĻĄāĻŋāϝāĻŧāĻžāĻŽ āĻā§āĻĄ āĻāĻāĻžāϰā§āĻ
- āĻŦā§āϞā§āϝāĻžāĻ āĻŦāĻā§āϏ āĻĒāϰā§āĻā§āώāĻž: āĻāĻĻāĻžāĻšāϰāĻŖ āĻāĻŦāĻ āĻā§āĻļāϞ āϏāĻš āĻāĻāĻāĻŋ āĻāĻā§āϰ āĻāĻŋāĻāĻā§āϰāĻŋāϝāĻŧāĻžāϞ

- āĻāĻŽāϰāĻž āĻāĻŽāĻžāĻĻā§āϰ āĻĒāϰā§āĻā§āώāĻž āϞāĻŋāĻāĻŋāĨ¤
- āĻāĻŽāϰāĻž āĻĒāϰā§āĻā§āώāĻž āĻāĻžāϞāĻžāĻāĨ¤ āĻāĻļā§āĻāϰā§āϝāĻāύāĻāĻāĻžāĻŦā§, āĻāĻāĻŋ āĻŦā§āϝāϰā§āĻĨ āĻšāϝāĻŧ, āϝā§āĻšā§āϤ⧠āĻāĻŽāϰāĻž āĻāĻāύāĻ āĻĒā§āϰāϝāĻŧā§āĻāύā§āϝāĻŧ āϝā§āĻā§āϤāĻŋ āĻĒā§āϰāϝāĻŧā§āĻ āĻāϰāĻŋāύāĻŋāĨ¤
- āĻā§āĻĄ āϝā§āĻ āĻāϰā§āύ āϝāĻž āĻĒāϰā§āĻā§āώāĻžāϝāĻŧ āĻāϤā§āϤā§āϰā§āĻŖ āĻšāϝāĻŧ (āĻāĻŽāϰāĻž āĻāĻŦāĻžāϰ āĻĒāϰā§āĻā§āώāĻž āĻāĻžāϞāĻžāĻ)āĨ¤
- āĻāĻŽāϰāĻž āĻā§āĻĄ āϰāĻŋāĻĢā§āϝāĻžāĻā§āĻāϰ.
āĻĒāϰā§āĻā§āώāĻžāϰ āĻĒāϰā§āϝāĻžāϝāĻŧ
āĻāĻāĻāĻŋ āĻĒāϰā§āĻā§āώāĻž āϤāĻŋāύāĻāĻŋ āĻĒāϰā§āϝāĻžāϝāĻŧā§ āĻāĻ āĻŋāϤ:- āĻĒāϰā§āĻā§āώāĻžāϰ āĻĄā§āĻāĻž āύāĻŋāϰā§āĻĻāĻŋāώā§āĻ āĻāϰā§āύ (āĻĢāĻŋāĻā§āϏāĻāĻžāϰ)āĨ¤
- āĻĒāϰā§āĻā§āώāĻžāϰ āĻ āϧā§āύ⧠āĻā§āĻĄāĻāĻŋ āĻ āύā§āĻļā§āϞāύ āĻāϰā§āύ (āĻĒāϰā§āĻā§āώāĻŋāϤ āĻĒāĻĻā§āϧāϤāĻŋāϤ⧠āĻāϞ āĻāϰā§āύ)āĨ¤
- āĻĢāϞāĻžāĻĢāϞ āϝāĻžāĻāĻžāĻ āĻāϰā§āύ āĻāĻŦāĻ āĻĒā§āϰāϤā§āϝāĻžāĻļāĻŋāϤ āĻĢāϞāĻžāĻĢāϞā§āϰ āϏāĻžāĻĨā§ āϤā§āϞāύāĻž āĻāϰā§āύāĨ¤

āĻĒāϰā§āĻā§āώāĻžāϰ āĻĒāϰāĻŋāĻŦā§āĻļ
āϏā§āϤāϰāĻžāĻ, āĻāĻāύ āĻŦāĻŋāύā§āĻĻā§. āĻāĻžāĻāĻžāϰ āĻāύā§āϝ āĻŦā§āĻļ āĻāĻŋāĻā§ āĻĒāϰā§āĻā§āώāĻžāϰ āĻĒāϰāĻŋāĻŦā§āĻļ (āĻĢā§āϰā§āĻŽāĻāϝāĻŧāĻžāϰā§āĻ) āĻāĻĒāϞāĻŦā§āϧ āϰāϝāĻŧā§āĻā§āĨ¤ āĻāϰ āĻŽāϧā§āϝ⧠āϏāĻŦāĻā§āϝāĻŧā§ āĻāύāĻĒā§āϰāĻŋāϝāĻŧ āĻšāϞ JUnit āĻāĻŦāĻ TestNGāĨ¤ āĻāĻāĻžāύ⧠āĻāĻŽāĻžāĻĻā§āϰ āĻĒāϰā§āϝāĻžāϞā§āĻāύāĻžāϰ āĻāύā§āϝ, āĻāĻŽāϰāĻž āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻŋ:
- @Test āύāĻŋāϰā§āĻĻā§āĻļ āĻāϰ⧠āϝ⧠āĻĒāĻĻā§āϧāϤāĻŋāĻāĻŋ āĻāĻāĻāĻŋ āĻĒāϰā§āĻā§āώāĻž (āĻŽā§āϞāϤ, āĻāĻ āĻā§āĻāĻž āĻĻāĻŋāϝāĻŧā§ āĻāĻŋāĻšā§āύāĻŋāϤ āĻāĻāĻāĻŋ āĻĒāĻĻā§āϧāϤāĻŋ āĻšāϞ āĻāĻāĻāĻŋ āĻāĻāύāĻŋāĻ āĻĒāϰā§āĻā§āώāĻž)āĨ¤
- @Before āĻāĻāĻāĻŋ āĻĒāĻĻā§āϧāϤāĻŋ āύāĻŋāϰā§āĻĻā§āĻļ āĻāϰ⧠āϝāĻž āĻĒā§āϰāϤāĻŋāĻāĻŋ āĻĒāϰā§āĻā§āώāĻžāϰ āĻāĻā§ āĻāĻžāϰā§āϝāĻāϰ āĻāϰāĻž āĻšāĻŦā§āĨ¤ āĻāĻĻāĻžāĻšāϰāĻŖāϏā§āĻŦāϰā§āĻĒ, āĻĒāϰā§āĻā§āώāĻžāϰ āĻĄā§āĻāĻž āĻĻāĻŋāϝāĻŧā§ āĻāĻāĻāĻŋ āĻā§āϞāĻžāϏ āĻĒāĻĒā§āϞā§āĻ āĻāϰāϤā§, āĻāύāĻĒā§āĻ āĻĄā§āĻāĻž āĻĒāĻĄāĻŧā§āύ āĻāϤā§āϝāĻžāĻĻāĻŋāĨ¤
- @After āĻāĻāĻāĻŋ āĻĒāĻĻā§āϧāϤāĻŋ āĻāĻŋāĻšā§āύāĻŋāϤ āĻāϰāϤ⧠āĻŦā§āϝāĻŦāĻšā§āϤ āĻšāϝāĻŧ āϝāĻž āĻĒā§āϰāϤāĻŋāĻāĻŋ āĻĒāϰā§āĻā§āώāĻžāϰ āĻĒāϰ⧠āĻāϞ āĻāϰāĻž āĻšāĻŦā§ (āϝā§āĻŽāύ āĻĄā§āĻāĻž āϏāĻžāĻĢ āĻāϰāϤ⧠āĻŦāĻž āĻĄāĻŋāĻĢāϞā§āĻ āĻŽāĻžāύ āĻĒā§āύāϰā§āĻĻā§āϧāĻžāϰ āĻāϰāϤā§)āĨ¤
- @BeforeClass āĻāĻāĻāĻŋ āĻĒāĻĻā§āϧāϤāĻŋāϰ āĻāĻĒāϰ⧠āϏā§āĻĨāĻžāĻĒāύ āĻāϰāĻž āĻšāϝāĻŧā§āĻā§, @Before āĻāϰ āĻ āύā§āϰā§āĻĒāĨ¤ āĻāĻŋāύā§āϤ⧠āĻāĻ āϧāϰāύā§āϰ āĻāĻāĻāĻŋ āĻĒāĻĻā§āϧāϤāĻŋ āĻĒā§āϰāĻĻāϤā§āϤ āĻļā§āϰā§āĻŖā§āϰ āĻāύā§āϝ āϏāĻŽāϏā§āϤ āĻĒāϰā§āĻā§āώāĻžāϰ āĻāĻā§ āĻļā§āϧā§āĻŽāĻžāϤā§āϰ āĻāĻāĻŦāĻžāϰ āĻŦāϞāĻž āĻšāϝāĻŧ āĻāĻŦāĻ āϤāĻžāĻ āϏā§āĻĨāĻŋāϰ āĻšāϤ⧠āĻšāĻŦā§āĨ¤ āĻāĻāĻŋ āĻāϰāĻ āϏāĻŽā§āĻĒāĻĻ-āύāĻŋāĻŦāĻŋāĻĄāĻŧ āĻā§āϰāĻŋāϝāĻŧāĻžāĻāϞāĻžāĻĒ āϏāĻŽā§āĻĒāĻžāĻĻāύ āĻāϰāϤ⧠āĻŦā§āϝāĻŦāĻšā§āϤ āĻšāϝāĻŧ, āϝā§āĻŽāύ āĻāĻāĻāĻŋ āĻĒāϰā§āĻā§āώāĻžāϰ āĻĄāĻžāĻāĻžāĻŦā§āϏ āϏā§āĻĒāĻŋāύ āĻāϰāĻžāĨ¤
- @AfterClass āĻšāϞ @BeforeClass āĻāϰ āĻŦāĻŋāĻĒāϰā§āϤ: āĻāĻāĻŋ āĻĒā§āϰāĻĻāϤā§āϤ āĻļā§āϰā§āĻŖā§āϰ āĻāύā§āϝ āĻāĻāĻŦāĻžāϰ āĻāĻžāϰā§āϝāĻāϰ āĻāϰāĻž āĻšāϝāĻŧ, āϤāĻŦā§ āĻļā§āϧā§āĻŽāĻžāϤā§āϰ āϏāĻŽāϏā§āϤ āĻĒāϰā§āĻā§āώāĻžāϰ āĻĒāϰā§āĨ¤ āĻāĻāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻž āĻšāϝāĻŧ, āĻāĻĻāĻžāĻšāϰāĻŖāϏā§āĻŦāϰā§āĻĒ, āϏā§āĻĨāĻžāϝāĻŧā§ āϏāĻāϏā§āĻĨāĻžāύāĻā§āϞāĻŋ āϏāĻžāĻĢ āĻāϰāϤ⧠āĻŦāĻž āĻāĻāĻāĻŋ āĻĄāĻžāĻāĻžāĻŦā§āϏ āĻĨā§āĻā§ āϏāĻāϝā§āĻ āĻŦāĻŋāĻā§āĻāĻŋāύā§āύ āĻāϰāϤā§āĨ¤
- @ āĻāĻĒā§āĻā§āώāĻž āύāĻŋāϰā§āĻĻā§āĻļ āĻāϰ⧠āϝ⧠āĻāĻāĻāĻŋ āĻĒāĻĻā§āϧāϤāĻŋ āĻ āĻā§āώāĻŽ āĻāϰāĻž āĻšāϝāĻŧā§āĻā§ āĻāĻŦāĻ āϏāĻžāĻŽāĻā§āϰāĻŋāĻ āĻĒāϰā§āĻā§āώāĻž āĻāĻžāϞāĻžāύā§āϰ āϏāĻŽāϝāĻŧ āĻāĻĒā§āĻā§āώāĻž āĻāϰāĻž āĻšāĻŦā§āĨ¤ āĻāĻāĻŋ āĻŦāĻŋāĻāĻŋāύā§āύ āĻĒāϰāĻŋāϏā§āĻĨāĻŋāϤāĻŋāϤ⧠āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻž āĻšāϝāĻŧ, āĻāĻĻāĻžāĻšāϰāĻŖāϏā§āĻŦāϰā§āĻĒ, āϝāĻĻāĻŋ āĻŦā§āϏ āĻĒāĻĻā§āϧāϤāĻŋ āĻĒāϰāĻŋāĻŦāϰā§āϤāύ āĻāϰāĻž āĻšāϝāĻŧ āĻāĻŦāĻ āĻĒāϰāĻŋāĻŦāϰā§āϤāύāĻā§āϞāĻŋ āĻŽāĻŋāĻāĻŽāĻžāĻ āĻāϰāĻžāϰ āĻāύā§āϝ āĻĒāϰā§āĻā§āώāĻžāĻāĻŋ āĻāĻāύāĻ āĻĒā§āύāϰāĻžāϝāĻŧ āĻāĻžāĻ āĻāϰāĻž āύāĻž āĻšāϝāĻŧāĨ¤ āĻāĻ āϧāϰāύā§āϰ āĻā§āώā§āϤā§āϰā§, āĻāĻāĻāĻŋ āĻŦāĻŋāĻŦāϰāĻŖ āϝā§āĻ āĻāϰāĻžāĻ āĻŦāĻžāĻā§āĻāύā§āϝāĻŧ, āϝā§āĻŽāύ @Ignore("āĻāĻŋāĻā§ āĻŦāĻŋāĻŦāϰāĻŖ")āĨ¤
- @Test(āĻĒā§āϰāϤā§āϝāĻžāĻļāĻŋāϤ = Exception.class) āύā§āϤāĻŋāĻŦāĻžāĻāĻ āĻĒāϰā§āĻā§āώāĻžāϰ āĻāύā§āϝ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻž āĻšāϝāĻŧāĨ¤ āĻāĻā§āϞāĻŋ āĻāĻŽāύ āĻĒāϰā§āĻā§āώāĻž āϝāĻž āϝāĻžāĻāĻžāĻ āĻāϰ⧠āϝ⧠āĻā§āύāĻ āϤā§āϰā§āĻāĻŋāϰ āĻā§āώā§āϤā§āϰ⧠āĻĒāĻĻā§āϧāϤāĻŋāĻāĻŋ āĻā§āĻāĻžāĻŦā§ āĻāĻāϰāĻŖ āĻāϰā§, āĻ āϰā§āĻĨāĻžā§, āĻĒāϰā§āĻā§āώāĻžāĻāĻŋ āĻāĻļāĻž āĻāϰ⧠āϝ⧠āĻĒāĻĻā§āϧāϤāĻŋāĻāĻŋ āĻā§āύāĻ āϧāϰāĻŖā§āϰ āĻŦā§āϝāϤāĻŋāĻā§āϰāĻŽ āύāĻŋāĻā§āώā§āĻĒ āĻāϰāĻŦā§āĨ¤ āĻāĻ āϧāϰāύā§āϰ āĻĒāĻĻā§āϧāϤāĻŋ @Test āĻā§āĻāĻž āĻĻā§āĻŦāĻžāϰāĻž āύāĻŋāϰā§āĻĻā§āĻļāĻŋāϤ āĻšāϝāĻŧ, āĻāĻŋāύā§āϤ⧠āĻā§āύ āϤā§āϰā§āĻāĻŋ āϧāϰāϤ⧠āĻšāĻŦā§ āϤāĻžāϰ āĻāĻā§āĻāĻŋāϤ āĻĻāĻŋāϝāĻŧā§āĨ¤
- @Test(āĻāĻžāĻāĻŽāĻāĻāĻ = 100) āĻĒāϰā§āĻā§āώāĻž āĻāϰ⧠āϝ⧠āĻĒāĻĻā§āϧāϤāĻŋāĻāĻŋ 100 āĻŽāĻŋāϞāĻŋāϏā§āĻā§āύā§āĻĄā§āϰ āĻŦā§āĻļāĻŋ āύāϝāĻŧāĨ¤
- @Mock āĻāĻāĻāĻŋ āĻŽāĻ āĻ āĻŦāĻā§āĻā§āĻ āĻŦāϰāĻžāĻĻā§āĻĻ āĻāϰāĻžāϰ āĻāύā§āϝ āĻāĻāĻāĻŋ āĻā§āώā§āϤā§āϰā§āϰ āĻāĻĒāϰ⧠āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻž āĻšāϝāĻŧ (āĻāĻāĻŋ JUnit āĻā§āĻāĻž āύāϝāĻŧ, āĻāĻŋāύā§āϤ⧠āĻĒāϰāĻŋāĻŦāϰā§āϤ⧠Mockito āĻĨā§āĻā§ āĻāϏā§)āĨ¤ āĻĒā§āϰāϝāĻŧā§āĻāύ āĻ āύā§āϏāĻžāϰā§, āĻāĻŽāϰāĻž āĻĒāϰā§āĻā§āώāĻž āĻĒāĻĻā§āϧāϤāĻŋāϤ⧠āϏāϰāĻžāϏāϰāĻŋ āĻāĻāĻāĻŋ āύāĻŋāϰā§āĻĻāĻŋāώā§āĻ āĻĒāϰāĻŋāϏā§āĻĨāĻŋāϤāĻŋāϰ āĻāύā§āϝ āĻāĻĒāĻšāĻžāϏā§āϰ āĻāĻāϰāĻŖ āϏā§āĻ āĻāϰāĻŋāĨ¤
- @RunWith(MockitoJUnitRunner.class) āĻāĻāĻāĻŋ āĻā§āϞāĻžāϏā§āϰ āĻāĻĒāϰ⧠āϰāĻžāĻāĻž āĻšāϝāĻŧā§āĻā§āĨ¤ āĻāĻ āĻā§āĻāĻžāĻāĻŋ JUnit āĻā§ āĻā§āϞāĻžāϏ⧠āĻĒāϰā§āĻā§āώāĻž āĻļā§āϰ⧠āĻāϰāϤ⧠āĻŦāϞā§āĨ¤ āĻāĻā§āϞāĻŋ āϏāĻš āĻŦāĻŋāĻāĻŋāύā§āύ āϰāĻžāύāĻžāϰ āϰāϝāĻŧā§āĻā§: MockitoJUnitRunner, JUnitPlatform āĻāĻŦāĻ SpringRunnerāĨ¤ JUnit 5-āĻ @RunWith āĻā§āĻāĻžāĻāĻŋāĻā§ āĻāϰāĻ āĻļāĻā§āϤāĻŋāĻļāĻžāϞ⧠@ExtendWith āĻā§āĻāĻž āĻĻāĻŋāϝāĻŧā§ āĻĒā§āϰāϤāĻŋāϏā§āĻĨāĻžāĻĒāĻŋāϤ āĻāϰāĻž āĻšāϝāĻŧā§āĻā§āĨ¤
- assertEquals(āĻ āĻŦāĻā§āĻā§āĻ āĻĒā§āϰāϤā§āϝāĻžāĻļāĻŋāϤ, āĻŦāϏā§āϤ⧠āĻŦāĻžāϏā§āϤāĻŦ) â āĻĒāĻžāϏ āĻāϰāĻž āĻŦāϏā§āϤ⧠āϏāĻŽāĻžāύ āĻāĻŋāύāĻž āϤāĻž āĻĒāϰā§āĻā§āώāĻž āĻāϰā§āĨ¤
- assertTrue(āĻŦā§āϞāĻŋāϝāĻŧāĻžāύ āĻĒāϤāĻžāĻāĻž) â āĻĒāĻžāϏ āĻāϰāĻž āĻŽāĻžāύ āϏāϤā§āϝ āĻāĻŋāύāĻž āϤāĻž āĻĒāϰā§āĻā§āώāĻž āĻāϰā§āĨ¤
- assertFalse(āĻŦā§āϞāĻŋāϝāĻŧāĻžāύ āĻĒāϤāĻžāĻāĻž) â āĻĒāĻžāϏ āĻāϰāĻž āĻŽāĻžāύ āĻŽāĻŋāĻĨā§āϝāĻž āĻāĻŋāύāĻž āϤāĻž āĻĒāϰā§āĻā§āώāĻž āĻāϰā§āĨ¤
- assertNull(āĻ āĻŦāĻā§āĻā§āĻ āĻ āĻŦāĻā§āĻā§āĻ) â āĻĒāĻžāϏ āĻāϰāĻž āĻŦāϏā§āϤā§āĻāĻŋ āĻļā§āύā§āϝ āĻāĻŋāύāĻž āϤāĻž āĻĒāϰā§āĻā§āώāĻž āĻāϰā§āĨ¤
- assertSame(āĻ āĻŦāĻā§āĻā§āĻ āĻĢāĻžāϰā§āϏā§āĻāĻ āĻŦāĻā§āĻā§āĻ, āĻ āĻŦāĻā§āĻā§āĻ āϏā§āĻā§āύā§āĻĄāĻ āĻŦāĻā§āĻā§āĻ) â āĻĒāĻžāϏ āĻāϰāĻž āĻŽāĻžāύāĻā§āϞāĻŋ āĻāĻāĻ āĻŦāϏā§āϤā§āĻā§ āύāĻŋāϰā§āĻĻā§āĻļ āĻāϰ⧠āĻāĻŋāύāĻž āϤāĻž āĻĒāϰā§āĻā§āώāĻž āĻāϰā§āĨ¤
- assertTat(T t, matcher
āĻŽā§āϝāĻžāĻāĻžāϰ) - āĻŽā§āϝāĻžāĻāĻžāϰ⧠āύāĻŋāϰā§āĻĻāĻŋāώā§āĻ āĻļāϰā§āϤāĻāĻŋ āĻĒā§āϰāĻŖ āĻāϰ⧠āĻāĻŋāύāĻž āϤāĻž āĻĒāϰā§āĻā§āώāĻž āĻāϰā§āĨ¤
āĻ āύā§āĻļā§āϞāύ⧠āĻĒāϰā§āĻā§āώāĻž
āĻāĻāύ āĻāĻāĻāĻŋ āύāĻŋāϰā§āĻĻāĻŋāώā§āĻ āĻāĻĻāĻžāĻšāϰāĻŖā§ āĻāĻĒāϰā§āϰ āĻāĻĒāĻžāĻĻāĻžāύāĻāĻŋ āĻĻā§āĻā§āύāĨ¤ āĻāĻŽāϰāĻž āĻāĻāĻāĻŋ āĻĒāϰāĻŋāώā§āĻŦāĻžāϰ āĻāĻĒāĻĄā§āĻ āĻĒāĻĻā§āϧāϤāĻŋ āĻĒāϰā§āĻā§āώāĻž āĻāϰāĻŦ⧎ āĻāĻŽāϰāĻž DAO āϏā§āϤāϰ āĻŦāĻŋāĻŦā§āĻāύāĻž āĻāϰāĻŦ āύāĻž, āϝā§āĻšā§āϤ⧠āĻāĻŽāϰāĻž āĻĄāĻŋāĻĢāϞā§āĻ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻāĻŋāĨ¤ āĻĒāϰā§āĻā§āώāĻžāϰ āĻāύā§āϝ āĻāĻāĻāĻŋ āϏā§āĻāĻžāϰā§āĻāĻžāϰ āϝā§āĻ āĻāϰāĻž āϝāĻžāĻ:<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<version>2.2.2.RELEASE</version>
<scope>test</scope>
</dependency>
āĻāĻŦāĻ āĻāĻāĻžāύ⧠āĻāĻŽāĻžāĻĻā§āϰ āĻĒāϰāĻŋāώā§āĻŦāĻž āĻā§āϞāĻžāϏ āĻāĻā§:
@Service
@RequiredArgsConstructor
public class RobotServiceImpl implements RobotService {
private final RobotDAO robotDAO;
@Override
public Robot update(Long id, Robot robot) {
Robot found = robotDAO.findById(id);
return robotDAO.update(Robot.builder()
.id(id)
.name(robot.getName() != null ? robot.getName() : found.getName())
.cpu(robot.getCpu() != null ? robot.getCpu() : found.getCpu())
.producer(robot.getProducer() != null ? robot.getProducer() : found.getProducer())
.build());
}
}
āϞāĻžāĻāύ 8 â āĻĄāĻžāĻāĻžāĻŦā§āϏ āĻĨā§āĻā§ āĻāĻĒāĻĄā§āĻ āĻāϰāĻž āĻ
āĻŦāĻā§āĻā§āĻ āĻāĻžāύā§āύāĨ¤ āϞāĻžāĻāύ 9-14 â āύāĻŋāϰā§āĻŽāĻžāϤāĻžāϰ āĻŽāĻžāϧā§āϝāĻŽā§ āĻāĻāĻāĻŋ āĻŦāϏā§āϤ⧠āϤā§āϰāĻŋ āĻāϰā§āύāĨ¤ āϝāĻĻāĻŋ āĻāύāĻāĻžāĻŽāĻŋāĻ āĻ
āĻŦāĻā§āĻā§āĻā§āϰ āĻāĻāĻāĻŋ āĻā§āώā§āϤā§āϰ āĻĨāĻžāĻā§ āϤāĻŦā§ āĻāĻāĻŋ āϏā§āĻ āĻāϰā§āύāĨ¤ āϝāĻĻāĻŋ āύāĻž āĻšāϝāĻŧ, āĻāĻŽāϰāĻž āĻĄāĻžāĻāĻžāĻŦā§āϏ⧠āϝāĻž āĻāĻā§ āϤāĻž āĻā§āĻĄāĻŧā§ āĻĻā§āĻŦāĨ¤ āĻāĻāύ āĻāĻŽāĻžāĻĻā§āϰ āĻĒāϰā§āĻā§āώāĻž āĻĻā§āĻā§āύ:
@RunWith(MockitoJUnitRunner.class)
public class RobotServiceImplTest {
@Mock
private RobotDAO robotDAO;
private RobotServiceImpl robotService;
private static Robot testRobot;
@BeforeClass
public static void prepareTestData() {
testRobot = Robot
.builder()
.id(123L)
.name("testRobotMolly")
.cpu("Intel Core i7-9700K")
.producer("China")
.build();
}
@Before
public void init() {
robotService = new RobotServiceImpl(robotDAO);
}
āϞāĻžāĻāύ 1 - āĻāĻŽāĻžāĻĻā§āϰ āϰāĻžāύāĻžāϰāĨ¤ āϞāĻžāĻāύ 4 â āĻāĻŽāϰāĻž āĻāĻāĻāĻŋ āĻāĻĒāĻšāĻžāϏ āĻĒā§āϰāϤāĻŋāϏā§āĻĨāĻžāĻĒāύ āĻāϰ⧠DAO āϏā§āϤāϰ āĻĨā§āĻā§ āĻĒāϰāĻŋāώā§āĻŦāĻžāĻāĻŋāĻā§ āĻŦāĻŋāĻā§āĻāĻŋāύā§āύ āĻāϰāĻŋāĨ¤ āϞāĻžāĻāύ 11 â āĻāĻŽāϰāĻž āĻā§āϞāĻžāϏā§āϰ āĻāύā§āϝ āĻāĻāĻāĻŋ āĻĒāϰā§āĻā§āώāĻž āϏāϤā§āϤāĻž (āϝā§āĻāĻŋ āĻāĻŽāϰāĻž āĻāĻŋāύāĻŋāĻĒāĻŋāĻ āĻšāĻŋāϏāĻžāĻŦā§ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻŦ) āϏā§āĻ āĻāϰāĻŋāĨ¤ āϞāĻžāĻāύ 22 â āĻāĻŽāϰāĻž āϏāĻžāϰā§āĻāĻŋāϏ āĻ
āĻŦāĻā§āĻā§āĻ āϏā§āĻ āĻāϰāĻŋ, āϝāĻž āĻāĻŽāϰāĻž āĻĒāϰā§āĻā§āώāĻž āĻāϰāĻŦāĨ¤
@Test
public void updateTest() {
when(robotDAO.findById(any(Long.class))).thenReturn(testRobot);
when(robotDAO.update(any(Robot.class))).then(returnsFirstArg());
Robot robotForUpdate = Robot
.builder()
.name("Vally")
.cpu("AMD Ryzen 7 2700X")
.build();
Robot resultRobot = robotService.update(123L, robotForUpdate);
assertNotNull(resultRobot);
assertSame(resultRobot.getId(),testRobot.getId());
assertThat(resultRobot.getName()).isEqualTo(robotForUpdate.getName());
assertTrue(resultRobot.getCpu().equals(robotForUpdate.getCpu()));
assertEquals(resultRobot.getProducer(),testRobot.getProducer());
}
āĻāĻāĻžāύ⧠āĻāĻŽāϰāĻž āĻĻā§āĻāϤ⧠āĻĒāĻžāĻā§āĻāĻŋ āϝ⧠āĻĒāϰā§āĻā§āώāĻžāϰ āϤāĻŋāύāĻāĻŋ āϏā§āĻĒāώā§āĻ āĻŦāĻŋāĻāĻžāĻ āϰāϝāĻŧā§āĻā§: āϞāĻžāĻāύ 3-9 â āύāĻŋāϰā§āĻĻāĻŋāώā§āĻ āĻĢāĻŋāĻā§āϏāĻāĻžāϰāĨ¤ āϞāĻžāĻāύ 11 - āĻĒāϰā§āĻā§āώāĻžāϰ āĻ
āϧā§āύ⧠āĻā§āĻĄ āύāĻŋāϰā§āĻŦāĻžāĻš āĻāϰāĻžāĨ¤ āϞāĻžāĻāύ 13-17 â āĻĢāϞāĻžāĻĢāϞ āĻĒāϰā§āĻā§āώāĻž āĻāϰāĻžāĨ¤ āĻāϰāĻ āĻŦāĻŋāĻļāĻĻā§: āϞāĻžāĻāύ 3-4 â DAO āĻŽāĻā§āϰ āĻāύā§āϝ āĻāĻāϰāĻŖ āϏā§āĻ āĻāϰā§āύāĨ¤ āϞāĻžāĻāύ 5 - āĻāĻĻāĻžāĻšāϰāĻŖ āϏā§āĻ āĻāϰā§āύ āϝ⧠āĻāĻŽāϰāĻž āĻāĻŽāĻžāĻĻā§āϰ āϏā§āĻā§āϝāĻžāύā§āĻĄāĻžāϰā§āĻĄā§āϰ āĻāĻĒāϰ⧠āĻāĻĒāĻĄā§āĻ āĻāϰāĻŦāĨ¤ āϞāĻžāĻāύ 11 â āĻĒāĻĻā§āϧāϤāĻŋāĻāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰā§āύ āĻāĻŦāĻ āĻĢāϞāĻžāĻĢāϞā§āϰ āĻāĻĻāĻžāĻšāϰāĻŖāĻāĻŋ āύāĻŋāύāĨ¤ āϞāĻžāĻāύ 13 - āĻĒāϰā§āĻā§āώāĻž āĻāϰā§āύ āϝ⧠āĻāĻāĻŋ āĻļā§āύā§āϝ āύāϝāĻŧāĨ¤ āϞāĻžāĻāύ 14 â āĻĢāϞāĻžāĻĢāϞā§āϰ ID āĻāĻŦāĻ āĻĒā§āϰāĻĻāϤā§āϤ āĻĒāĻĻā§āϧāϤāĻŋ āĻāϰā§āĻā§āĻŽā§āύā§āĻā§āϰ āϤā§āϞāύāĻž āĻāϰā§āύāĨ¤ āϞāĻžāĻāύ 15 â āύāĻžāĻŽ āĻāĻĒāĻĄā§āĻ āĻāϰāĻž āĻšāϝāĻŧā§āĻā§ āĻāĻŋāύāĻž āϤāĻž āĻĒāϰā§āĻā§āώāĻž āĻāϰā§āύāĨ¤ āϞāĻžāĻāύ 16 â CPU āĻĢāϞāĻžāĻĢāϞ āĻĻā§āĻā§āύāĨ¤ āϞāĻžāĻāύ 17 â āĻāĻŽāϰāĻž āĻāĻĻāĻžāĻšāϰāĻŖā§ āĻāĻ āĻā§āώā§āϤā§āϰāĻāĻŋ āύāĻŋāϰā§āĻĻāĻŋāώā§āĻ āĻāϰāĻŋāύāĻŋ, āϤāĻžāĻ āĻāĻāĻŋ āĻāĻāĻ āĻĨāĻžāĻāĻž āĻāĻāĻŋāϤāĨ¤ āĻāĻŽāϰāĻž āĻāĻāĻžāύ⧠āϝ⧠āĻļāϰā§āϤ āĻā§āĻ. āĻāϞā§āύ āĻāĻāĻŋ āĻāĻžāϞāĻžāύ⧠āϝāĻžāĻ: