0
声称我有一些测试,取得了JSONObject的断言,针对不同的端点返回,就像这样:重用Junit的不同类别
JsonElement product = asJsonObject.get("product");
JsonElement type = product.getAsJsonObject().get("type");
Assert.assertEquals(ProductType.PRODUCT_1.name(), type.getAsString());
JsonElement name = product.getAsJsonObject().get("name");
Assert.assertEquals("name", name.getAsString());
这
大量的Java代码,对不对?有多个端点返回相同的Json,我需要执行相同的断言来保证预期的结果。
但我试图找到一种方法来重用上面这段代码。很显然,我可以做这样的事情:
new AssertProduct(asJsonObject.get("product")).assert(type, name);
和:
class AssertProduct {
private JsonElement product;
AssertProduct(JsonElement product) {
this.product = product;
{
boolean assert(String name, String type) {
JsonElement type = product.getAsJsonObject().get("type");
Assert.assertEquals(type, type.getAsString());
JsonElement name = product.getAsJsonObject().get("name");
Assert.assertEquals(name, name.getAsString());
}
}
但是......这是对这类问题的好方法吗?
我将它们分开,所以你可以做'AssertProduct(asJsonObject.get(“product”)).ofType(x).ofName(y)' – vikingsteve
恕我直言,这是一个很好的方法。 –
@vikingsteve不错。你愿意对这个建议做出回答吗?我会把你的问题标记为已解决。 – Dherik