Durante la scrittura dei test delle unità, dovrei specificare la query che verrà eseguita per interagire con il database?
Posso vedere entrambi i lati di questo. Da un lato, voglio assicurarmi che la query che specifichi venga eseguita. Ma posso rendere il test più fragile a causa della formattazione della query.
Modifica Fondamentalmente il codice sarebbe un oggetto mapper che interagisce con il livello db. Ma mi chiedo quanto sia necessario specifico nelle mie interazioni con un oggetto Db.
Modifica
Come voglio prendere in giro eventuali dipendenze esterne ai miei oggetti quando sto prendendo in giro la mia connessione al database. Devo specificare la query che verrà eseguita.
Ad esempio:
testGettingUsers() {
$mockDb = $this->getMockBuilder('My_DB_Connection')
->setMethods(array('query'))
->getMock();
$mockDb->expects($this->once())
->method('query')
->with('SELECT id, name FROM USERS WHERE name = foo')
->will($this->returnValue($dbReturn));
Qui ho specificato la mia query come parametro con cui chiamerò la mia connessione DB. È necessario?