我对放心使用Java还是相当陌生的,并且我正试图将变量从一种方法(或测试用例)转换为另一种方法,而我一直在获取“ null”。
我已经尝试了许多不同的方法,但是我一直在得到错误。基本上,我想要从测试“ getTweet”获取“ id”并将其传递给测试“ deleteTweet”。任何帮助将不胜感激。
import io.restassured.RestAssured;
import io.restassured.path.json.JsonPath;
import io.restassured.response.Response;
import static io.restassured.RestAssured.given;
import org.testng.annotations.Test;
public class twitterTesting {
String consumerKey = consumer;
String consumerSecret = secretConsumer;
String accessToken = token;
String accessSecret = secretToken;
String tweetText = "Never give up!";
String id;
@Test
public void createTweet() {
RestAssured.baseURI = "https://api.twitter.com/1.1/statuses";
given().
auth().oauth(consumer, secretConsumer, token, secretToken).
queryParam("status", tweetText).
when().post("/update.json").
then().assertThat().statusCode(200);
}
@Test
public void getTweet() {
RestAssured.baseURI = "https://api.twitter.com/1.1/statuses";
Response res2 = given().
auth().oauth(consumerKey, consumerSecret, accessToken, accessSecret).
queryParam("count", "1").
when().get("/home_timeline.json").
then().assertThat().statusCode(200).
and().extract().response();
JsonPath jsonResponse = resources.rawToJson(res2);
String text = jsonResponse.getString("text");
id = jsonResponse.getString("id");
System.out.println(id);
//System.out.println("/destroy/" + (id.substring(1, id.length()-1) + ".json"));
String textModified = text.substring(1, text.length()-1);
System.out.println(textModified);
System.out.println(tweetText);
assert text.contains(tweetText); //true
}
@Test
public void deleteTweet() {
System.out.println("/destroy/" + id + ".json");
}
}
在将ID变量发送到“ deleteTweet”测试用例时,我一直得到/destroy/null.json。
答案 0 :(得分:0)
每次运行测试时,您都会得到一个新对象,这主要是设计使然;测试应该相互独立。这样做的好处是,您可以单击一个(失败的)测试,然后再次运行该测试,而且,这意味着您无需定义测试的运行顺序。
因此,测试类基本上不应包含字段。摆脱所有这些。
然后“修复” deleteTweet
,创建一个可能通常称为getTweet的方法(通常未标记为@Test
!)(通常,测试方法称为testDeleteTweet或类似的方法,而不是deleteTweet),然后调用从deleteTweet中获取。
如果您必须使用现场材料,则可以做到这一点;有@BeforeTest,您可以放置一个方法:该方法将在每次测试中每次执行,并且该方法可以为您填充“ id”字段。但这确实意味着每个测试方法都会调用该方法,即使不需要它的测试方法也是如此。