我想知道当我想在不同的测试用例中使用对象时,应该如何将它们声明为字段。
- 带有"private"的标准声明
- 最终/非最终
- 静态/非静态
如果我真的应该怎么做,请解释一下?
假设单元测试,它们应该是独立的、无序的。
因此,唯一的字段可以是常数static final String ID_A = "Ahmed";
。
常量对象也是如此。
但是,您可以为每个测试运行一个设置@BeforeEach
(junit 5(并自动拆除@AfterEach
方法。将其用于数据库连接等。
对于其他方法,通常有两种方法来传递更复杂的数据(如分层数据(是有意义的。特别是如果不是每个测试都使用该数据,那么对象不适合作为设置方法中填充的字段。
假设我只想有一个简单的id作为字符串,我可以使用它每次,而不是在每次测试中创建一个新的String。
是的,您可以与测试用例具有常数值的字段共享或创建类。
如果这个变量只用于一些相关的测试,那么你可以创建抽象基类并为它编写getter
public abstract class BaseTest
{
private string _id = "1";
public string GetId()
{
return _id;
}
}
所以您将在相关的测试中继承这个BaseTest
类。这种方法使用继承。
此外,您可以创建一个具有常数值的类:
public class Constant
{
public static final String WELCOME_MESSAGE = "Hello, welcome to the server";
}
然后在任何你想要的地方使用这些变量。