diff --git a/incubator/api/src/test/java/org/onosproject/incubator/net/virtual/DefaultVirtualDeviceTest.java b/incubator/api/src/test/java/org/onosproject/incubator/net/virtual/DefaultVirtualDeviceTest.java
index 04ba6a9..1fd97e3 100644
--- a/incubator/api/src/test/java/org/onosproject/incubator/net/virtual/DefaultVirtualDeviceTest.java
+++ b/incubator/api/src/test/java/org/onosproject/incubator/net/virtual/DefaultVirtualDeviceTest.java
@@ -18,16 +18,14 @@
 
 import com.google.common.testing.EqualsTester;
 import org.junit.Test;
-import org.onosproject.net.DeviceId;
+import org.onosproject.net.TestDeviceParams;
 
 import static org.onlab.junit.ImmutableClassChecker.assertThatClassIsImmutable;
 
 /**
  * Test of the default virtual device model entity.
  */
-public class DefaultVirtualDeviceTest {
-    final String deviceIdValue1 = "DEVICE_ID1";
-    final String deviceIdValue2 = "DEVICE_ID2";
+public class DefaultVirtualDeviceTest extends TestDeviceParams {
 
     /**
      * Checks that the DefaultVirtualDevice class is immutable.
@@ -40,13 +38,13 @@
     @Test
     public void testEquality() {
         DefaultVirtualDevice device1 =
-                new DefaultVirtualDevice(NetworkId.networkId(0), DeviceId.deviceId(deviceIdValue1));
+                new DefaultVirtualDevice(NetworkId.networkId(0), DID1);
         DefaultVirtualDevice device2 =
-                new DefaultVirtualDevice(NetworkId.networkId(0), DeviceId.deviceId(deviceIdValue1));
+                new DefaultVirtualDevice(NetworkId.networkId(0), DID1);
         DefaultVirtualDevice device3 =
-                new DefaultVirtualDevice(NetworkId.networkId(0), DeviceId.deviceId(deviceIdValue2));
+                new DefaultVirtualDevice(NetworkId.networkId(0), DID2);
         DefaultVirtualDevice device4 =
-                new DefaultVirtualDevice(NetworkId.networkId(1), DeviceId.deviceId(deviceIdValue1));
+                new DefaultVirtualDevice(NetworkId.networkId(1), DID1);
 
         new EqualsTester().addEqualityGroup(device1, device2).addEqualityGroup(device3)
                 .addEqualityGroup(device4).testEquals();
