Erhalten Sie eine Fehlermeldung beim Ausführen des Skripts GET -Endpunkt mit Java und TestNG
Posted: 16 Mar 2025, 15:41
Ich versuche, eine neu hinzugefügte Spalte (XYZ) in meiner Antwort abzurufen, wenn ich die GET -API aufgerufen habe, nachdem eine Kategorie -Margin -Einstellung erstellt wurde. Im Folgenden finden Sie die Schritte, die ich implementiert habe: < /p>
@before -Methode - Einrichten des Tests
in der @before -Methode erstelle ich die Einstellung der Kategorie -Margin mit einem Post -Endpunkt und rufe dann die GET -API auf, um die Liste abzurufen. Die erwartete Antwort enthält die neue Spalte XYZ: < /li>
< /ol>
@before -Methode - Einrichten des Tests
in der @before -Methode erstelle ich die Einstellung der Kategorie -Margin mit einem Post -Endpunkt und rufe dann die GET -API auf, um die Liste abzurufen. Die erwartete Antwort enthält die neue Spalte XYZ: < /li>
< /ol>
Code: Select all
{
"totalCount": 3418,
"totalPages": 7,
"data": [
{
"field1": 1,
"field2": "ABC",
"field3": 904,
"field4": "aa",
"XYZ": "1"
}
]
}
< /code>
Getters und Setter für 'xyz' Spalte
Ich habe den folgenden Getter und Setter in der Modellklasse hinzugefügt: < /li>
< /ol>
@JsonProperty("xyz")
public String getXyz() {
return xyz;
}
@JsonProperty("xyz")
public void setXyz(String xyz) {
this.xyz = xyz;
}
< /code>
Die Testmethode mit Assertion
habe meine Testmethode aktualisiert, um eine Behauptung für das Feld XYZ hinzuzufügen: < /li>
< /ol>
softAssert.assertEquals(setting.getXyz(), CategorySettingDAOFunctions.getXyz(), "xyz value is not equal");< /code> < /p>
Datenbankabfrage -Update in der DAO -Klasse
In der DAO -Klasse habe ich die Methode selectCategoryMarginsetting -Fromid aktualisiert, um die neue Spalte einzuschließen: < /li>
< /ol>
try {
conn = DatabaseUtil.getConnection();
preparedStatement = conn.prepareStatement(selectQuery);
ResultSet rs = preparedStatement.executeQuery();
while (rs.next()) {
xyz = rs.getString("xyz");
}
}
< /code>
Diese Methode wird innerhalb der Testmethode aufgerufen. Die Auswahlabfrage wurde aktualisiert, um XYZ zu enthalten: < /p>
SELECT
column_1,
column_2,
column_3,
column_4,
column_5,
column_6,
column_7,
column_8,
column_9,
column_10,
column_11,
column_12,
column_13,
column_14,
column_15,
XYZ,
column_17,
column_18,
column_19
FROM table_A
LEFT JOIN table_B ON table_A.ref_id = table_B.id
LEFT JOIN table_C ON table_C.id = table_A.other_ref_id
LEFT JOIN table_D ON table_D.id = table_C.region_id
LEFT JOIN table_E ON table_E.id = table_C.market_id
WHERE table_A.type = 1
AND table_A.status = 1
AND table_A.id = %s;
< /code>
Problem:
Ich erhalte den folgenden Fehler bei der Ausführung meines Tests: < /p>
Wie kann ich dieses [url=viewtopic.php?t=15738]Problem[/url] beheben? Alle Erkenntnisse wären geschätzt! `< /P>
"error"
"SEVERE: Error
org.postgresql.util.PSQLException: The column name application was not found in this ResultSet."