我正在开发单元测试,在创建测试数据时可以从很多重用性中受益。但是,我需要对相同的测试数据(API参数)做不同的事情(API调用)。Java方法别名
我想知道下面的习语在Java中是否可行。
Class RunTestScenarios {
void runScenarioOne (A a, B b, C c) {
........
}
void runScenarioTwo (A a, B b, C c) {
........
}
void runScenario (/* The scenario */ scenarioXXX) {
A a = createTestDataA();
B b = createTestDataB();
C c = createTestDataC();
scenarioXXX(a, b, c);
}
public static void main (String[] args) {
runScenario(runScenarioOne);
runScenario(runScenarioTwo);
}
}
从本质上讲,我不希望有类似下面的重复无处不在:
A a = createTestDataA();
B b = createTestDataB();
C c = createTestDataC();
据我所知,这样的别名(scenarioXXX)是不可能的,但我会很乐意被纠正或者如果任何人都可以提出可能的设计方案来实现这种效果。
顺便说一句,我知道命令模式来完成这件事。但不是我在找什么。
谢谢, 美国就可以实现这个
感谢。虽然不是一个解决方案,但我认为你更好地描述了问题本身 - lambda支持。 Java没有方法引用或函数类型(尚)的概念。我想知道是否有一个更简洁的替代方案,而不必建立大量的锅炉代码 - 例如您建议的标准替代方案(匿名类/接口)。 非常感谢。 – USQ 2011-06-14 23:47:31
那么,匿名类*是一个解决方案......我只是没有给出代码,因为它很明显。 Java很冗长,喜欢用锅炉代码......(或者至少很难避免它)。我看到的其他解决方案,如使用库(单元测试框架)功能,是很好的解决方法。 – PhiLho 2011-06-15 05:53:20