假设我正在为移动应用程序构建按月订阅收费功能,有多种收费方式。可以通过 Apple Pay、Google 钱包、paypal、visa/master 取决于平台。每个提供者都有自己的实现和各自的 JUnit 测试(因为他们使用的是 Java)。
为了评估几个基本功能,每个实现都必须验证的情况很少。因此,计划是编写基本测试并调用抽象验证方法。
这是我的方法,
public abstract class BaseBillingTest
{
public abstract BillCharger getBillCharger();
public abstract void ValidateTest1(Bill input, Bill output);
public void tests_case_1(){
Bill input = new Bill(<some value>);
Bill Output = getBillCharger().charge(input);
ValidateTest1(input, output);
}
}
任何派生的测试类都将实现抽象方法,因此它有责任实现验证方法。派生测试类不需要知道基础测试中发生了什么,因为它们可以根据输入验证输出。
有什么建议可以以更优雅的方式解决这个问题吗?我可以在这种情况下应用任何设计模式吗?
慕标5832272
青春有我
相关分类