如何在 XML YML 文件中存储测试使用的示例对象?
How to store sample objects used by tests in XML YML files?
当我创建我的单元测试时,我使用在一个抽象 class 中声明和初始化测试使用的大量示例共享对象,由带有测试的 classes 扩展。
例如我在摘要 class 中定义了产品“phone”,并在一个名为“init”的方法中对其进行了初始化,并用 @Before 进行了注释。我在子 class 中创建方法 @Test“savePhoneTest”,它使用“phone”调用方法“savePhone”。这个对象总是重新初始化,我可以在其他测试中使用它。
是否可以将示例对象存储在 XML / YML 文件中?这是一个好习惯吗?我怎样才能取回对象?我用spring引导。
谢谢
是的,您可以使用 XML/YAML/JSON
来存储示例对象。它将帮助您编写更少的代码来创建示例对象。此外,通过使用这种方法,您的测试用例将变得更易于维护。
我更喜欢 JSON
而不是 XML/YAML
。
假设你有一个 Product
class 如下所示,
Product.java
@Data
@NoArgsConstructor
public class Product {
private int id;
private String name;
private float price;
private String brand;
}
您可以创建JSON file
来存储对象。 Product
class 的 JSON file
看起来像:
product.json
{
"id": 1000,
"name": "Smart phone",
"price": 60000.0,
"brand": "SAMSUNG"
}
只要您需要 Product
class 的任何对象,您都可以使用 JSON file
创建该对象。下面的示例显示了如何从 JSON file
:
创建 java 对象
InputStream inputStream = Product.class.getResourceAsStream("/product.json");
Product product = new ObjectMapper().readValue(inputStream, Product.class);
当我创建我的单元测试时,我使用在一个抽象 class 中声明和初始化测试使用的大量示例共享对象,由带有测试的 classes 扩展。
例如我在摘要 class 中定义了产品“phone”,并在一个名为“init”的方法中对其进行了初始化,并用 @Before 进行了注释。我在子 class 中创建方法 @Test“savePhoneTest”,它使用“phone”调用方法“savePhone”。这个对象总是重新初始化,我可以在其他测试中使用它。
是否可以将示例对象存储在 XML / YML 文件中?这是一个好习惯吗?我怎样才能取回对象?我用spring引导。 谢谢
是的,您可以使用 XML/YAML/JSON
来存储示例对象。它将帮助您编写更少的代码来创建示例对象。此外,通过使用这种方法,您的测试用例将变得更易于维护。
我更喜欢 JSON
而不是 XML/YAML
。
假设你有一个 Product
class 如下所示,
Product.java
@Data
@NoArgsConstructor
public class Product {
private int id;
private String name;
private float price;
private String brand;
}
您可以创建JSON file
来存储对象。 Product
class 的 JSON file
看起来像:
product.json
{
"id": 1000,
"name": "Smart phone",
"price": 60000.0,
"brand": "SAMSUNG"
}
只要您需要 Product
class 的任何对象,您都可以使用 JSON file
创建该对象。下面的示例显示了如何从 JSON file
:
InputStream inputStream = Product.class.getResourceAsStream("/product.json");
Product product = new ObjectMapper().readValue(inputStream, Product.class);