public function tearDown()
 {
     try {
         if (method_exists(self::$m, 'flush')) {
             self::$m->flush();
         }
     } catch (\Exception $e) {
         // do nothing
     }
     parent::tearDown();
 }
 public function testBasicCaching()
 {
     $key = ['key', 'string'];
     $val = 'value';
     self::$m->setEnabled(true);
     self::assertFalse(self::$m->has(...$key));
     self::assertTrue(self::$m->set($val, ...$key));
     self::assertFalse(self::$m->has(...$key));
     self::assertNull(self::$m->get(...$key));
     self::assertNotEquals($val, self::$m->get(...$key));
     self::assertEmpty(self::$m->listKeys());
     self::assertTrue(self::$m->del(...$key));
     self::assertTrue(self::$m->flush());
     self::assertEmpty(self::$m->listKeys());
 }