diff --git a/tests/OrasProject.Oras.Tests/Remote/RepositoryTest.cs b/tests/OrasProject.Oras.Tests/Remote/RepositoryTest.cs
index ded9fca..795f145 100644
--- a/tests/OrasProject.Oras.Tests/Remote/RepositoryTest.cs
+++ b/tests/OrasProject.Oras.Tests/Remote/RepositoryTest.cs
@@ -2045,16 +2045,15 @@ public async Task ManifestStore_TagAsync()
     [Fact]
     public async Task ManifestStore_PushReferenceAsync()
     {
-        var manifest = Encoding.UTF8.GetBytes($@"{{""layers"": []}}");
-        var indexStr = $@"{{""manifests"":[{{""mediaType"": ""{MediaType.ImageManifest}"", ""digest"": ""{ComputeSHA256(manifest)}"", ""size"": {manifest.Length}}}]}}";
-        var index = Encoding.UTF8.GetBytes(indexStr);
+        var index = RandomIndex();
+        var indexBytes = Encoding.UTF8.GetBytes(JsonSerializer.Serialize(index));
         var indexDesc = new Descriptor
         {
             MediaType = MediaType.ImageIndex,
-            Digest = ComputeSHA256(index),
-            Size = index.Length
+            Digest = ComputeSHA256(indexBytes),
+            Size = indexBytes.Length
         };
-        var gotIndex = new byte[index.Length];
+        var gotIndex = new byte[indexBytes.Length];
         var reference = "foobar";
 
         var func = async (HttpRequestMessage req, CancellationToken cancellationToken) =>
@@ -2092,8 +2091,8 @@ public async Task ManifestStore_PushReferenceAsync()
         });
         var cancellationToken = new CancellationToken();
         var store = new ManifestStore(repo);
-        await store.PushAsync(indexDesc, new MemoryStream(index), reference, cancellationToken);
-        Assert.Equal(index, gotIndex);
+        await store.PushAsync(indexDesc, new MemoryStream(indexBytes), reference, cancellationToken);
+        Assert.Equal(indexBytes, gotIndex);
     }
 
     /// <summary>