Constants { public static final PATH = "/contentFiles"; // Other constants ... }
我该如何嘲笑 PATH 我的常量类中的字段?我想模拟path变量,将其设置为“/test/contentfiles”行。我希望我的测试类从测试文件夹而不是生产“/contentfiles”文件夹中获取文件。
PATH
a6b3iqyw1#
如果常量类不是静态的,并且可以向类中添加一个方法,那么可以添加一个返回常量值的非静态方法,并模拟该方法以返回测试所需的值。如果常量类是静态的或不支持非静态方法,则可能必须将其 Package 在一个类中,例如 ConstantProvider 在那里你可以得到常量的getter。然后可以为constantprovider插入一个mock,并根据需要存根getter。第三种方法是在被测类中使用受保护/包保护的非静态全局字段,并直接设置这些值。如果全局字段被初始化为被测试方法之外的常量值,并且测试类在同一个包中,那么这种方法就可以工作。
ConstantProvider
1条答案
按热度按时间a6b3iqyw1#
如果常量类不是静态的,并且可以向类中添加一个方法,那么可以添加一个返回常量值的非静态方法,并模拟该方法以返回测试所需的值。
如果常量类是静态的或不支持非静态方法,则可能必须将其 Package 在一个类中,例如
ConstantProvider
在那里你可以得到常量的getter。然后可以为constantprovider插入一个mock,并根据需要存根getter。第三种方法是在被测类中使用受保护/包保护的非静态全局字段,并直接设置这些值。如果全局字段被初始化为被测试方法之外的常量值,并且测试类在同一个包中,那么这种方法就可以工作。