Nette\Tester jak otestovat metodu

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
motorcb
Člen | 551
+
0
-

Zdravím.

Jak v Nette\Tester otestuji vlastní metodu?
Například claculateHashhttps://github.com/…rManager.php#L82

Děkuji za rady

enumag
Člen | 2118
+
0
-

Popravdě zrovna calculateHash bych dal private (a ty se většinou netestují).

motorcb
Člen | 551
+
0
-

enumag napsal(a):

Díky :-)

Jde mi o princip jak to udělat, ne jak to nedělat :-)

enumag
Člen | 2118
+
0
-

Mrkni třeba na testy co napsal @HosipLan: https://github.com/…yTests/Redis.

motorcb
Člen | 551
+
0
-

@enumag:

Jenže @hosiplan netestuje metody v presenterech ale svoje class.
Opravdu by někdo nevěděl jak napsat ukázkový test pro calculateHash? https://github.com/…rManager.php#L82

llook
Člen | 407
+
0
-

Statickou metodu otestuješ jednoduše tak, že porovnáš očekávaný výsledek se skutečným:

use Model\UserManager;

Assert::same(
	'$2a$07$7l4kf4anutx9iy5fn4pmrexIFmxP9iOGdOsZ6YeVbbsim5brMSDLK',
	UserManager::calculateHash('password')
);
Assert::same(
	'$2a$07$3vj8bx7paktshn1ozb39pu4UEDqUj0Yazzt3MMejwQGLSsYFxlvYm',
	UserManager::calculateHash('password', str_repeat('salt', 10))
);

U metod objektů, které mají další závislosti, je to složitější (musíš závislosti namockovat), ale v principu to je pořád totéž: Něco provedeš a porovnáváš očekávání s realitou.

enumag
Člen | 2118
+
0
-

@motorcb: No a? Co má tvoje metoda calculateHash společného s presenterem? UserManager je tvoje class, tedy je to stejný případ jako v hosiplanových testech.