CakePHP 3, jak používat TestSuite testování aktualizačního dotazu?

hlasů
0

Mám následující kroky ve svém stolním souboru.

public function tokenChange($token){
        if(!$token) return false;
        return $this->query()
            ->update()
            ->set(['email_token' => NULL, 'email_verified'=>1, 'email_token_expires'=>NULL])
            ->where(['email_token' => $token])
            ->execute();
    }

Jedná se o akci v mém TableTest

public function testTokenChange()
{
            $result = $this->Users->tokenChange('5404f27f3d9a4');
            $expected = TRUE;
            debug($result);
            $this->assertEquals($expected,$result);
}

Vím, že dotaz nevrátí logickou hodnotu. Ale jak mohu zjistit, zda je aktualizace ve skutečnosti probíhá, aniž by hrozilo další dotaz zkontrolovat tabulku ??

Položena 03/09/2014 v 17:48
uživatelem
V jiných jazycích...                            


1 odpovědí

hlasů
2

Ty by v podstatě testuje, že modifikovaný řádek byl upraven, jak by se dalo očekávat:

public function testTokenChange()
{
    $id = $this->Users->findByEmailToken('5404f27f3d9a4')->first()->id;
    $this->Users->tokenChange('5404f27f3d9a4');
    $row = $this->Users->get($id);
    $expected = [
        'email_token' => null,
        'email_verified' => true,
        'email_token_expires' => null
    ];
    $this->assertEquals($expected, $row->extract(array_keys($expected)));
}
Odpovězeno 03/09/2014 v 18:08
zdroj uživatelem

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more