Skip to content

Commit 9e660a1

Browse files
authored
Make the test less flaky (GoogleCloudPlatform#1245)
1 parent 31b8aa1 commit 9e660a1

File tree

1 file changed

+16
-9
lines changed

1 file changed

+16
-9
lines changed

dialogflow/cloud-client/src/test/java/com/example/dialogflow/KnowledgeBaseManagementIT.java

Lines changed: 16 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -28,9 +28,9 @@
2828
import com.google.cloud.dialogflow.v2beta1.KnowledgeBasesClient;
2929
import com.google.cloud.dialogflow.v2beta1.ProjectName;
3030

31+
import com.google.common.collect.ImmutableList;
3132
import java.io.ByteArrayOutputStream;
3233
import java.io.PrintStream;
33-
import java.util.Collections;
3434
import java.util.List;
3535
import java.util.Map;
3636

@@ -53,7 +53,9 @@ public class KnowledgeBaseManagementIT {
5353
private static String KNOWLEDGE_BASE_NAME = "fake_knowledge_base_name";
5454
private static String DOCUMENT_BASE_NAME = "fake_document_name";
5555

56-
private static List<String> TEXTS = Collections.singletonList("How do I sign up?");
56+
private static List<String> TEXTS = ImmutableList
57+
.of("How do I sign up?", "Is my data redundant?", "Where can I find pricing information?",
58+
"Where is my data stored?", "What are my support options?");
5759

5860
@Before
5961
public void setUp() {
@@ -160,14 +162,19 @@ public void testDetectIntentKnowledge() throws Exception {
160162

161163
Map<String, KnowledgeAnswers> allAnswers = DetectIntentKnowledge
162164
.detectIntentKnowledge(PROJECT_ID, knowledgeBaseName, SESSION_ID, LANGUAGE_CODE, TEXTS);
163-
assertEquals(1, allAnswers.size());
164-
KnowledgeAnswers knowledgeAnswers = allAnswers.get(TEXTS.get(0));
165+
assertEquals(TEXTS.size(), allAnswers.size());
166+
int answersFound = 0;
165167
for (String text : TEXTS) {
166-
assertEquals(1, knowledgeAnswers.getAnswersCount());
167-
Answer answer = knowledgeAnswers.getAnswers(0);
168-
assertEquals(text, answer.getFaqQuestion());
169-
assertEquals(document.getName(), answer.getSource());
170-
assertThat(answer.getAnswer()).contains("Cloud Storage");
168+
KnowledgeAnswers knowledgeAnswers = allAnswers.get(text);
169+
if (knowledgeAnswers.getAnswersCount() > 0) {
170+
answersFound++;
171+
Answer answer = knowledgeAnswers.getAnswers(0);
172+
assertEquals(text, answer.getFaqQuestion());
173+
assertEquals(document.getName(), answer.getSource());
174+
assertThat(answer.getAnswer()).contains("Cloud Storage");
175+
}
171176
}
177+
// To make the test less flaky, check that half of the texts got a result.
178+
assertThat(answersFound).isGreaterThan(TEXTS.size() / 2);
172179
}
173180
}

0 commit comments

Comments
 (0)