diff --git a/test/async_cookies_test.dart b/test/async_cookies_test.dart
index 9281385..16788ea 100644
--- a/test/async_cookies_test.dart
+++ b/test/async_cookies_test.dart
@@ -20,6 +20,8 @@
 
 import 'configs/async_io_config.dart' as config;
 
+final _expiryDate = DateTime.now().add(const Duration(days: 180));
+
 void main() {
   group('Cookies', () {
     WebDriver driver;
@@ -44,9 +46,11 @@
     });
 
     test('add complex cookie and get', () async {
-      var date = DateTime.utc(2020);
       await driver.cookies.add(Cookie('mycookie', 'myvalue',
-          path: '/', domain: '.google.com', secure: false, expiry: date));
+          path: '/',
+          domain: '.google.com',
+          secure: false,
+          expiry: _expiryDate));
 
       final cookie = await driver.cookies.getCookie('mycookie');
       expect(cookie.value, 'myvalue');
@@ -55,9 +59,11 @@
 
     test('get all cookies', () async {
       await driver.cookies.add(Cookie('mycookie', 'myvalue'));
-      var date = DateTime.utc(2020);
       await driver.cookies.add(Cookie('mycomplexcookie', 'mycomplexvalue',
-          path: '/', domain: '.google.com', secure: false, expiry: date));
+          path: '/',
+          domain: '.google.com',
+          secure: false,
+          expiry: _expiryDate));
 
       bool found = false;
       await for (var cookie in driver.cookies.all) {
@@ -102,9 +108,11 @@
       // So instead, we plant two cookies and test that they are actually
       // removed by [deleteAll].
       await driver.cookies.add(Cookie('mycookie', 'myvalue'));
-      var date = DateTime.utc(2020);
       await driver.cookies.add(Cookie('mycomplexcookie', 'mycomplexvalue',
-          path: '/', domain: '.google.com', secure: false, expiry: date));
+          path: '/',
+          domain: '.google.com',
+          secure: false,
+          expiry: _expiryDate));
 
       await driver.cookies.deleteAll();
 
diff --git a/test/sync/cookies.dart b/test/sync/cookies.dart
index d430442..e749f47 100644
--- a/test/sync/cookies.dart
+++ b/test/sync/cookies.dart
@@ -20,6 +20,8 @@
 
 import '../configs/sync_io_config.dart' as config;
 
+final _expiryDate = DateTime.now().add(const Duration(days: 180));
+
 void runTests({WebDriverSpec spec = WebDriverSpec.Auto}) {
   group('Cookies', () {
     WebDriver driver;
@@ -44,9 +46,11 @@
     });
 
     test('add complex cookie and get', () {
-      var date = DateTime.utc(2020);
       driver.cookies.add(Cookie('mycookie', 'myvalue',
-          path: '/', domain: '.google.com', secure: false, expiry: date));
+          path: '/',
+          domain: '.google.com',
+          secure: false,
+          expiry: _expiryDate));
 
       final cookie = driver.cookies.getCookie('mycookie');
       expect(cookie.value, 'myvalue');
@@ -55,9 +59,11 @@
 
     test('get all cookies', () {
       driver.cookies.add(Cookie('mycookie', 'myvalue'));
-      var date = DateTime.utc(2020);
       driver.cookies.add(Cookie('mycomplexcookie', 'mycomplexvalue',
-          path: '/', domain: '.google.com', secure: false, expiry: date));
+          path: '/',
+          domain: '.google.com',
+          secure: false,
+          expiry: _expiryDate));
 
       bool found = false;
       for (var cookie in driver.cookies.all) {
@@ -101,9 +107,11 @@
       // So instead, we plant two cookies and test that they are actually
       // removed by [deleteAll].
       driver.cookies.add(Cookie('mycookie', 'myvalue'));
-      var date = DateTime.utc(2020);
       driver.cookies.add(Cookie('mycomplexcookie', 'mycomplexvalue',
-          path: '/', domain: '.google.com', secure: false, expiry: date));
+          path: '/',
+          domain: '.google.com',
+          secure: false,
+          expiry: _expiryDate));
 
       driver.cookies.deleteAll();
 
