diff --git a/src/test/java/com/googlesource/gerrit/plugins/chatgpt/ChatGptReviewTestBase.java b/src/test/java/com/googlesource/gerrit/plugins/chatgpt/ChatGptReviewTestBase.java
index 9362896..ab257c1 100644
--- a/src/test/java/com/googlesource/gerrit/plugins/chatgpt/ChatGptReviewTestBase.java
+++ b/src/test/java/com/googlesource/gerrit/plugins/chatgpt/ChatGptReviewTestBase.java
@@ -11,11 +11,8 @@
 import com.google.gerrit.extensions.api.GerritApi;
 import com.google.gerrit.extensions.api.accounts.AccountApi;
 import com.google.gerrit.extensions.api.accounts.Accounts;
-import com.google.gerrit.extensions.api.changes.ChangeApi;
+import com.google.gerrit.extensions.api.changes.*;
 import com.google.gerrit.extensions.api.changes.ChangeApi.CommentsRequest;
-import com.google.gerrit.extensions.api.changes.Changes;
-import com.google.gerrit.extensions.api.changes.ReviewInput;
-import com.google.gerrit.extensions.api.changes.RevisionApi;
 import com.google.gerrit.extensions.common.ChangeInfo;
 import com.google.gerrit.extensions.common.CommentInfo;
 import com.google.gerrit.extensions.common.GroupInfo;
@@ -122,6 +119,8 @@
     @Mock
     protected RevisionApi revisionApiMock;
     @Mock
+    protected ReviewResult reviewResult;
+    @Mock
     protected CommentsRequest commentsRequestMock;
     @Mock
     protected AccountCache accountCacheMock;
@@ -195,6 +194,9 @@
 
         // Mock the behavior of the gerritPatchSet comments request
         mockGerritChangeCommentsApiCall();
+
+        // Mock the behavior of the gerrit Review request
+        mockGerritReviewApiCall();
     }
 
     private Accounts mockGerritAccountsRestEndpoint() {
@@ -243,6 +245,11 @@
         when(changesMock.id(PROJECT_NAME.get(), BRANCH_NAME.shortName(), CHANGE_ID.get())).thenReturn(changeApiMock);
     }
 
+    private void mockGerritReviewApiCall() throws RestApiException {
+        ArgumentCaptor<ReviewInput> reviewInputCaptor = ArgumentCaptor.forClass(ReviewInput.class);
+        when(revisionApiMock.review(reviewInputCaptor.capture())).thenReturn(reviewResult);
+    }
+
     protected void initComparisonContent() {}
 
     protected <T> T readTestFileToClass(String filename, Class<T> clazz) {
