在 java 中的字符串中附加值
Appending values in a string in java
我有一个 REST API 测试套件,其中重复使用了某些 URI。因此,我创建了一个单独的 class 和 public static final
成员。类似于:
public class RestURI {
public RestURI(){}
public static final String getAllShipsURI = "/ship/manager/ships";
public static final String getAllPortsURI = "/port/manager/ports";
}
但是,有没有办法像这样处理 URI:
/infrastructure/ships/docked/" + shipId + "/capacity
我正在寻找一种方法,以便我可以像上面那样在 RestURI class 中声明 URL,并且在我使用它们时仍然在测试中指定值。
您可以使用 String.format。像这样:
public class RestURI {
public RestURI(){}
public xxx() {
int shipId = 219001000;
... String.format(dockedShipURIFormat, shipId) ...;
}
public static final String dockedShipURIFormat = "/infrastructure/ships/docked/%d/capacity";
}
您可以使用常量 格式 ,而不是字符串并使用静态 getter:
public static String getShipUri(int shipId) {
return String.format("/infrastructure/ships/docked/%d/capacity", shipId);
}
我已经多次使用 ANTLR StringTemplate 来解决这个问题。在模板中进行内联宏解析和一些 if..else 逻辑的能力非常强大,并且保持了良好的可读性。
我有一个 REST API 测试套件,其中重复使用了某些 URI。因此,我创建了一个单独的 class 和 public static final
成员。类似于:
public class RestURI {
public RestURI(){}
public static final String getAllShipsURI = "/ship/manager/ships";
public static final String getAllPortsURI = "/port/manager/ports";
}
但是,有没有办法像这样处理 URI:
/infrastructure/ships/docked/" + shipId + "/capacity
我正在寻找一种方法,以便我可以像上面那样在 RestURI class 中声明 URL,并且在我使用它们时仍然在测试中指定值。
您可以使用 String.format。像这样:
public class RestURI {
public RestURI(){}
public xxx() {
int shipId = 219001000;
... String.format(dockedShipURIFormat, shipId) ...;
}
public static final String dockedShipURIFormat = "/infrastructure/ships/docked/%d/capacity";
}
您可以使用常量 格式 ,而不是字符串并使用静态 getter:
public static String getShipUri(int shipId) {
return String.format("/infrastructure/ships/docked/%d/capacity", shipId);
}
我已经多次使用 ANTLR StringTemplate 来解决这个问题。在模板中进行内联宏解析和一些 if..else 逻辑的能力非常强大,并且保持了良好的可读性。