Presentation from Uszanowanko Programowanko meetup - www.meetup.com/Uszanowanko-Programowanko/events/221770025/
Czasami poczucie dobrze spełnionego obowiązku po uruchomieniu wszystkich testów jest złudne. Nawet doświadczonym developerom zdarza się pisać hotfixy. W jaki sposób zapewnić sobie spokój i zminimalizować konieczność pisania kolejnych poprawek? W trakcie prezentacji omówione zostaną przykłady dobrze i źle napisanych testów oraz przedstawione będą sytuacje, w których trudne jest rozpoznanie potencjalnych problemów mogących wyniknąć w przyszłości.
7. Formatowanie dat i
czasu w PHP (1/8)
function it_formats_date_and_time()
{
$dateTime = new DateTime('2015-01-01');
$format = 'Y-m-d';
$formattedDateTime = $this->format($dateTime, $format);
$formattedDateTime->shouldEqual('2015-01-01');
}
8. Formatowanie dat i
czasu w PHP (2/8)
/**
* @param DateTime $dateTime
* @param string $format
*/
public function format(DateTime $dateTime, $format)
{
return $dateTime->format($format);
}
9. Formatowanie dat i
czasu w PHP (3/8)
function it_formats_localized_date_and_time()
{
$dateTime = new DateTime('2015-01-01');
$format = 'dd MMMM YYYY';
$locale = 'pl_PL';
$formattedDateTime = $this->formatLocalized($dateTime, $format, $locale);
$formattedDateTime->shouldEqual('01 stycznia 2015');
}
10. Formatowanie dat i
czasu w PHP (4/8)
/**
* @param DateTime $dateTime
* @param string $format
* @param string $locale
*/
public function formatLocalized(DateTime $dateTime, $format, $locale)
{
$dateFormattingType = IntlDateFormatter::FULL;
$timeFormattingType = IntlDateFormatter::FULL;
$formatter = new IntlDateFormatter(
$locale,
$dateFormattingType,
$timeFormattingType
);
$formatter->setPattern($format);
return $formatter->format($dateTime);
}
12. Formatowanie dat i
czasu w PHP (6/8)
function it_formats_localized_date_and_time()
{
$this->assertFormat(new DateTime('2015-01-01'), '01 stycznia 2015');
$this->assertFormat(new DateTime('2000-05-08'), '08 maja 2000');
$this->assertFormat(new DateTime('1997-11-27'), '27 listopada 1997');
$this->assertFormat(new DateTime('2022-02-28'), '28 lutego 2022');
$this->assertFormat(new DateTime('1982-01-01'), '01 stycznia 1982');
}
private function assertFormat($dateTime, $expected)
{
$this->formatLocalized($dateTime, 'dd MMMM YYYY', 'pl_PL')->shouldEqual($expected);
}
25. Sortowanie tekstu (2/2)
SELECT name FROM names ORDER BY name ASC;
+--------+
| name |
+--------+
| Adrian |
| Chris |
| Daniel |
| Kris |
| Åge |
| Aaron |
+--------+