diff --git a/composer.json b/composer.json
index 32c0abf5f0a44b0b02d6de2bb7f32c24da6cb28a..8c634ff1301df8f389e88118ccb41eb54b46ae10 100644
--- a/composer.json
+++ b/composer.json
@@ -17,6 +17,8 @@
     "drupal/config_installer": "1.3.0",
     "drupal/console": "~1",
     "drush/drush": "*",
+    "drupal/coder": "8.2.8",
+    "drupal/core": "~8",
     "drupal/ds": "~3",
     "drupal/field_group": "~1",
     "drupal/coffee": "~1",
@@ -27,7 +29,6 @@
     "drupal/token": "~1",
     "drupal/bootstrap": "3.1",
     "phpunit/phpunit": "5.5.*",
-    "bovigo/assert": "~1.7",
     "nuvoleweb/drupal-behat": "1.0.2",
     "mikey179/vfsStream": "*",
     "bex/behat-screenshot": "^1.2",
@@ -35,8 +36,7 @@
     "bex/behat-extension-driver-locator": "^1.0",
     "phpro/grumphp": "0.11.4",
     "squizlabs/php_codesniffer": "~2.9",
-    "drupal/coder": "8.2.8",
-    "drupal/core": "8.4.x-dev"
+    "peridot-php/leo": "^1.6"
   },
   "conflict": {
     "drupal/drupal": "*"
diff --git a/tests/features/bootstrap/FeatureContext.php b/tests/features/bootstrap/FeatureContext.php
index 2b867f0f38512fae0f8e8f5c5c1f0c3506a0b995..0737faffbd333318d8e9f1576c509bc63e6faae9 100644
--- a/tests/features/bootstrap/FeatureContext.php
+++ b/tests/features/bootstrap/FeatureContext.php
@@ -6,8 +6,6 @@
 
 use Behat\Gherkin\Node\TableNode;
 use NuvoleWeb\Drupal\DrupalExtension\Context\RawDrupalContext;
-use function bovigo\assert\assert;
-use function bovigo\assert\predicate\isTrue;
 
 /**
  * Class FeatureContext.
@@ -31,7 +29,7 @@ class FeatureContext extends RawDrupalContext {
   public function assertModulesEnabled(TableNode $table) {
     $rows = $table->getRows();
     foreach ($rows as $row) {
-      assert(\Drupal::moduleHandler()->moduleExists($row[0]), isTrue(), "Module '{$row[0]}' should be enabled but it is not.");
+      expect(\Drupal::moduleHandler()->moduleExists($row[0]))->to->be->true("Module '{$row[0]}' should be enabled but it is not.");
     }
   }
 
diff --git a/tests/src/Kernel/Plugin/Deriver/YamlDeriverTest.php b/tests/src/Kernel/Plugin/Deriver/YamlDeriverTest.php
index 78f4d01d6af94c18d52cafc79fc3ec7c44a9ee2d..491f4b6608f1dd9ae0785e0c387a2b37196a2746 100644
--- a/tests/src/Kernel/Plugin/Deriver/YamlDeriverTest.php
+++ b/tests/src/Kernel/Plugin/Deriver/YamlDeriverTest.php
@@ -2,8 +2,6 @@
 
 namespace Drupal\Tests\ui_patterns\Kernel\Plugin\Deriver;
 
-use function bovigo\assert\assert;
-use function bovigo\assert\predicate\hasKey;
 use Drupal\Tests\ui_patterns\Kernel\AbstractUiPatternsTest;
 use Drupal\ui_patterns\UiPatterns;
 
@@ -21,10 +19,7 @@ class YamlDeriverTest extends AbstractUiPatternsTest {
    */
   public function testGetDerivativeDefinitions() {
     foreach (UiPatterns::getManager()->getDefinitions() as $definition) {
-      assert($definition, hasKey('id')
-        ->and(hasKey('provider'))
-        ->and(hasKey('base path'))
-      );
+      expect($definition)->to->have->keys(['id', 'provider', 'base path']);
     }
   }
 
diff --git a/tests/src/Kernel/Plugin/PatternBaseTest.php b/tests/src/Kernel/Plugin/PatternBaseTest.php
index 5fd9496e1bc78e80afdbf47fd5b856cad1f35ce8..07ed30ac630956f66a58fa67bf4bcf7bb905c14f 100644
--- a/tests/src/Kernel/Plugin/PatternBaseTest.php
+++ b/tests/src/Kernel/Plugin/PatternBaseTest.php
@@ -2,8 +2,6 @@
 
 namespace Drupal\Tests\ui_patterns\Kernel\Plugin;
 
-use function bovigo\assert\assert;
-use function bovigo\assert\predicate\equals;
 use Drupal\Component\Serialization\Yaml;
 use Drupal\Tests\ui_patterns\Kernel\AbstractUiPatternsTest;
 use Drupal\ui_patterns\Plugin\PatternBase;
@@ -28,7 +26,7 @@ class PatternBaseTest extends AbstractUiPatternsTest {
 
       /** @var \Drupal\ui_patterns\Plugin\PatternBase $pattern */
       $libraries = $pattern->getLibraryDefinitions();
-      assert($libraries, equals($item['expected']));
+      expect($libraries)->to->loosely->equal($item['expected']);
     }
   }
 
diff --git a/tests/src/Kernel/TypedData/PatternDataDefinitionTest.php b/tests/src/Kernel/TypedData/PatternDataDefinitionTest.php
index e10db73ce3eab42c215954f6c902a2ef8ca8dd4b..8727590fc25b5ebb98587d0b091d58c08a993ee6 100644
--- a/tests/src/Kernel/TypedData/PatternDataDefinitionTest.php
+++ b/tests/src/Kernel/TypedData/PatternDataDefinitionTest.php
@@ -2,8 +2,6 @@
 
 namespace Drupal\Tests\ui_patterns\Kernel\TypedData;
 
-use function bovigo\assert\assert;
-use function bovigo\assert\predicate\equals;
 use Drupal\Tests\ui_patterns\Kernel\AbstractUiPatternsTest;
 use Drupal\ui_patterns\TypedData\PatternDataDefinition;
 use Drupal\Component\Serialization\Yaml;
@@ -28,7 +26,7 @@ class PatternDataDefinitionTest extends AbstractUiPatternsTest {
     foreach ($violations as $violation) {
       $actual[] = $violation->getPropertyPath() . ': ' . $violation->getMessage();
     }
-    assert($actual, equals($expected));
+    expect($actual)->to->equal($expected);
   }
 
   /**
diff --git a/tests/src/Kernel/UiPatternsManagerTest.php b/tests/src/Kernel/UiPatternsManagerTest.php
index f22b0c16ba445d4e3f45ea0262bee22f9f26f16d..0ce777ef6d158832daec66e28e55e046fa02a42c 100644
--- a/tests/src/Kernel/UiPatternsManagerTest.php
+++ b/tests/src/Kernel/UiPatternsManagerTest.php
@@ -2,8 +2,6 @@
 
 namespace Drupal\Tests\ui_patterns\Kernel;
 
-use function bovigo\assert\assert;
-use function bovigo\assert\predicate\equals;
 use Drupal\ui_patterns\UiPatterns;
 
 /**
@@ -23,7 +21,7 @@ class UiPatternsManagerTest extends AbstractUiPatternsTest {
     $definitions = $manager->getDefinitions();
 
     foreach ($manager->getPatterns() as $pattern) {
-      assert($pattern->getBaseId(), equals($definitions[$pattern->getPluginId()]->id()));
+      expect($pattern->getBaseId())->to->equal($definitions[$pattern->getPluginId()]->id());
     }
   }
 
diff --git a/tests/src/Kernel/UiPatternsSourceManagerTest.php b/tests/src/Kernel/UiPatternsSourceManagerTest.php
index ccf9c57a77074d9610f9507c183f74f5aac23718..b8a6124a28fb04c2c74a6427aa5f0e6cf5438d2d 100644
--- a/tests/src/Kernel/UiPatternsSourceManagerTest.php
+++ b/tests/src/Kernel/UiPatternsSourceManagerTest.php
@@ -2,11 +2,6 @@
 
 namespace Drupal\Tests\ui_patterns\Kernel;
 
-use function bovigo\assert\assert;
-use function bovigo\assert\predicate\isNotEmpty;
-use function bovigo\assert\predicate\hasKey;
-use function bovigo\assert\predicate\equals;
-
 /**
  * @coversDefaultClass \Drupal\ui_patterns\UiPatternsSourceManager
  *
@@ -24,7 +19,9 @@ class UiPatternsSourceManagerTest extends AbstractUiPatternsTest {
     $plugin_manager = \Drupal::service('plugin.manager.ui_patterns_source');
 
     $definitions = $plugin_manager->getDefinitions();
-    assert($definitions, isNotEmpty()->and(hasKey('test_source')));
+    expect($definitions)
+      ->to->not->be->empty()
+      ->and->to->have->keys(['test_source']);
 
     $expected = [
       ['name' => 'field_1', 'label' => 'Field 1'],
@@ -37,8 +34,8 @@ class UiPatternsSourceManagerTest extends AbstractUiPatternsTest {
     /** @var \Drupal\ui_patterns\Plugin\PatternSourceBase $plugin */
     $plugin = $plugin_manager->createInstance('test_source');
     foreach ($plugin->getSourceFields() as $key => $field) {
-      assert($field->getFieldName(), equals($expected[$key]['name']));
-      assert($field->getFieldLabel(), equals($expected[$key]['label']));
+      expect($field->getFieldName())->to->equal($expected[$key]['name']);
+      expect($field->getFieldLabel())->to->equal($expected[$key]['label']);
     }
   }
 
diff --git a/tests/src/Unit/Definition/PatternDefinitionTest.php b/tests/src/Unit/Definition/PatternDefinitionTest.php
index aa6160860bdf4048e834ce18e6268e8e4f7654d0..9942c0786c917e0d922d38e57cb02faa0b6c6e6a 100644
--- a/tests/src/Unit/Definition/PatternDefinitionTest.php
+++ b/tests/src/Unit/Definition/PatternDefinitionTest.php
@@ -2,8 +2,6 @@
 
 namespace Drupal\Tests\ui_patterns\Unit\Definition;
 
-use function bovigo\assert\assert;
-use function bovigo\assert\predicate\equals;
 use Drupal\Component\Serialization\Yaml;
 use Drupal\Tests\ui_patterns\Unit\AbstractUiPatternsTest;
 use Drupal\ui_patterns\Definition\PatternDefinition;
@@ -22,7 +20,7 @@ class PatternDefinitionTest extends AbstractUiPatternsTest {
    */
   public function testGettersSetters($getter, $name, $value) {
     $pattern_definition = new PatternDefinition([$name => $value]);
-    assert($value, equals(call_user_func([$pattern_definition, $getter])));
+    expect($value)->to->equal(call_user_func([$pattern_definition, $getter]));
   }
 
   /**
@@ -39,18 +37,18 @@ class PatternDefinitionTest extends AbstractUiPatternsTest {
     ];
     $pattern_definition = new PatternDefinition();
     $pattern_definition->setFields($fields);
-    assert($pattern_definition->getField('name')->getLabel(), equals($fields['name']['label']));
-    assert($pattern_definition->getField('name')->getName(), equals($fields['name']['name']));
-    assert($pattern_definition->getField('name')->getType(), equals(NULL));
-    assert($pattern_definition->getField('name')->getDescription(), equals(NULL));
-    assert($pattern_definition->getField('name')->getPreview(), equals(NULL));
+    expect($pattern_definition->getField('name')->getLabel())->to->equal($fields['name']['label']);
+    expect($pattern_definition->getField('name')->getName())->to->equal($fields['name']['name']);
+    expect($pattern_definition->getField('name')->getType())->to->equal(NULL);
+    expect($pattern_definition->getField('name')->getDescription())->to->equal(NULL);
+    expect($pattern_definition->getField('name')->getPreview())->to->equal(NULL);
 
     $pattern_definition->getField('name')->setType('type');
     $pattern_definition->getField('name')->setPreview('preview');
     $pattern_definition->getField('name')->setDescription('description');
-    assert($pattern_definition->getField('name')->getType(), equals('type'));
-    assert($pattern_definition->getField('name')->getDescription(), equals('description'));
-    assert($pattern_definition->getField('name')->getPreview(), equals('preview'));
+    expect($pattern_definition->getField('name')->getType())->to->equal('type');
+    expect($pattern_definition->getField('name')->getDescription())->to->equal('description');
+    expect($pattern_definition->getField('name')->getPreview())->to->equal('preview');
   }
 
   /**
@@ -61,7 +59,7 @@ class PatternDefinitionTest extends AbstractUiPatternsTest {
   public function testFieldsProcessing($actual, $expected) {
     $pattern_definition = new PatternDefinition();
     $data = $pattern_definition->setFields($actual)->toArray();
-    assert($data['fields'], equals($expected));
+    expect($data['fields'])->to->be->loosely->equal($expected);
   }
 
   /**
diff --git a/tests/src/Unit/Element/PatternPreviewTest.php b/tests/src/Unit/Element/PatternPreviewTest.php
index 5d2528b0886e39d7082b8db527777950e229118a..bad88b799e901c703eb445404959f84a75b2fa92 100644
--- a/tests/src/Unit/Element/PatternPreviewTest.php
+++ b/tests/src/Unit/Element/PatternPreviewTest.php
@@ -2,8 +2,6 @@
 
 namespace Drupal\Tests\ui_patterns\Unit\Element;
 
-use function bovigo\assert\assert;
-use function bovigo\assert\predicate\equals;
 use Drupal\Component\Serialization\Yaml;
 use Drupal\Tests\ui_patterns\Unit\AbstractUiPatternsTest;
 use Drupal\ui_patterns\Element\PatternPreview;
@@ -24,7 +22,7 @@ class PatternPreviewTest extends AbstractUiPatternsTest {
     $assertions = Yaml::decode(file_get_contents($this->getFixturePath() . '/preview_markup.yml'));
     foreach ($assertions as $assertion) {
       $result = PatternPreview::getPreviewMarkup($assertion['actual']);
-      assert($assertion['expected'], equals($result));
+      expect($assertion['expected'])->to->equal($result);
     }
   }