---
title: 'Тесты дисциплинируют'
url: 'https://graker.ru/news/2017/04/19/test-discipline'
language: ru
type: post
author: 'Роман Грачев'
published: '2017-04-19T11:10:00+03:00'
updated: '2017-04-19T11:19:37+03:00'
categories:
  - Laravel
  - Программирование
---

# Тесты дисциплинируют

Польза автоматизированного тестирования ПО в целом широко известна. Однако иногда тесты могут помочь улучшить код неожиданным образом.

Находишь баг, думаешь: вот сейчас не буду кривляться, сделаю как надо — напишу тест на баг и по тесту буду чинить. Разбираешься, придумываешь тест, пишешь его, запускаешь. И внезапно понимаешь, что в тестируемом функционале есть `::orderBy(DB::raw('RAND()'))` — mysql-зависимый запрос. А в Laravel тесты запускаются на sqlite.

Но время-то на тест уже потрачено, его жалко. Как теперь не написать правильный, не зависимый от драйвера БД код.
