java - 放心 - 我不能将一个变量从一种方法传递给另一种方法
问题描述
我对放心和 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。
解决方案
每次运行测试时,您都会得到一个新对象,这主要是设计使然;测试应该彼此独立。这样做的好处是您可以单击一个(失败的)测试并再次运行该测试,而且,这意味着您不需要定义测试的运行顺序。
因此,测试类基本上不应该有字段。摆脱所有这些。
然后“修复” deleteTweet
,创建一个(通常不标有@Test
!)方法,可能称为 getTweet(通常,测试方法称为 testDeleteTweet 或类似的,而不是 deleteTweet),并从 deleteTweet 调用它。
如果您必须使用现场材料,您可以这样做;有@BeforeTest,您可以放置一个方法:该方法将在每次测试中执行,并且该方法可以为您填充“id”字段。但这确实意味着每个测试方法都会调用该方法,甚至是不需要它的测试方法。
推荐阅读
- terminal - 在命令前添加即时 DNS 解析
- python - 从 np.random.multivariate_normal 重建协方差矩阵时结果不准确
- python - 为什么 WCS 投影子图上的特征在 matplotlib 中的位置错误?
- asp.net-core - 如何使用.net核心更改ubuntu os中的系统日期时间
- python-3.x - 从文本文件中获取特定数据
- objective-c - 在 Objective-C 项目中使用 SVG 路径
- inheritance - WebSharper - 如何将服务器上的动态映射策略模式对象公开给客户端?
- google-apps-script - 在 WHILE 循环中使用 && 的错误
- ios - Pubnub 消息未在 Swift 中转换为 JSON
- vba - 将vba转换为公式