Mi sto solo abituando ai test unitari e sul mio nuovo progetto ho deciso di adottare un approccio TDD.
Il mio codice qui sotto è quello di testare la classe UserServices
che è responsabile della creazione di un utente, eliminando un utente, controllando se un utente esiste ecc.
Sono sulla buona linea? Chiedo perché ovunque guardi discute di derisione e non posso fare a meno di pensare che dovrei prendere in giro predis
(un pacchetto usato per interagire con Redis in PHP). Ma deriderlo sarebbe difficile dato che la mia classe si aspetta un'istanza di Predis.
Nel setup creo un utente fittizio su cui eseguire le azioni. Potrei aver bisogno di crearne più di uno, ma a questo punto uso solo quello. Sebbene ci siano metodi come createUser
che avrebbero bisogno di creare un utente completamente nuovo.
<?php
namespace VoteMySnap\Tests;
class UserServicesTest extends \PHPUnit_Framework_TestCase
{
const HOST = '127.0.0.1';
const PORT = 6379
const AUTH = NULL;
public $predis;
public function setUp()
{
$this->predis = new \PredisClient([
'host' => HOST,
'port' => PORT
]);
/*
* Create a dummy user
*/
$dummyUser = [
'user:1' => [
'snapchat_username' => 'james16',
'password' => 'somesecret',
'email' => '[email protected]'
]
];
/*
* Insert user into Redis
*/
$this->predis->hmSet(key($dummyUser), $dummyUser[key($dummyUser)]);
}
public function tearDown()
{
/*
* Remove the dummy user
*/
$this->predis->delete(key($dummyUser));
}
}
Sono sulla buona strada qui?