Поддержка теперь встроена в Symfony. См. http://symfony.com/doc/master/cookbook/testing/doctrine.html
Вот что вы могли бы сделать:
namespace AppBundle\Tests;
use Symfony\Bundle\FrameworkBundle\Test\KernelTestCase;
class MyDatabaseTest extends KernelTestCase
{
private $container;
public function setUp()
{
self::bootKernel();
$this->container = self::$kernel->getContainer();
}
}
Для более современной и переработанной техники см. https://gist.github.com/jakzal/a24467c2e57d835dcb65 .
Обратите внимание, что использование контейнера в модульных тестах пахнет. Как правило, это означает, что ваши классы зависят от всего контейнера (весь мир), и это плохо. Вы должны ограничить свои зависимости и высмеять их.
// define comparators
final Comparator<Dog> SORT_BY_NAME_ASC = Comparator.comparing(Dog::getName);
final Comparator<Dog> SORT_BY_TAIL_LENGTH_ASC = Comparator.comparing(Dog::getTailLength);
// define a list
List<Dog> kennelList = Collections.emptyList();
// sort list items (you can swap comparators)
kennelList.sort(SORT_BY_NAME_ASC.thenComparing(SORT_BY_TAIL_LENGTH_ASC));
// retrieve items with at least required tailLength
public static List<Dog> filterByTailLength(List<Dog> kennelList, double tailLength) {
return kennelList.stream()
.filter(dog -> Double.compare(dog.getTailLength(), tailLength) >= 0)
.collect(Collectors.toList());
}
Следующие четыре шага могут помочь вам: метод использует Java 8 Stream API
Предположим, что структура собаки выглядит следующим образом:
class Dog {
private String name;
private Double tailLength;
private String owner;
}
Код в Java 8 следующим образом:
public static void listDogs(List<Dog> dogs, int tailLengh) {
if (null == dogs || dogs.size() < 1) {
System.out.println("no register dogs");
} else dogs.stream()
.sorted((o1, o2) -> o1.getTailLength().compareTo(o2.getTailLength()) == 0 ? o1.getName().compareTo(o2.getName()) : o1.getTailLength().compareTo(o2.getTailLength()))
.filter(dog -> dog.getTailLength() >= tailLengh)
.forEach(dog -> System.out.println(dog));
}
, если список отсортированных собак всегда использовался, вы должны хранить список отсортированных собак, поэтому вам не нужно каждый раз сортировать.