Java:动态创建方法调用序列的最佳方法

时间:2015-09-11 11:10:06

标签: java jbehave

我已经开始使用JBehave开发BDD项目了。我需要根据“Given”,“When”步骤构建一系列要调用的方法,最后在“Then”中执行它们。样本就像

鉴于用户登录为高级用户
当他将物品添加到购物车时 然后他获得特别折扣

对于上面的场景,我必须根据“Given”/“When”构建方法调用序列,然后在“Then”中执行相同的

E.g。

List<Executable> sequenceList
@Given
public void execGiven()
{

  A a = new A();
  a.call1()
  a.call2()
  B b = new B();
  b.call3();

}

@When
public void execWhen(){
C c = new C();
c.call4();
//...few more methods

@Then
public void execThen(){
//Add some methods to the list of executables
D d = new D();
d.call5();
Assert if everything successful
}

我面临的问题是我们正在使用的框架(在构建和使用中)不能用于在故事的每个步骤中部分执行方法调用序列。相反,我必须将它们作为整个序列执行(从a.call1到d.call5)。另外一个问题是我不想对每一步的方法调用进行硬编码,而是在运行时根据某些配置调用它们。 p>

我的方法。 不是在每个步骤中运行这些方法(a.call1,a.call2),而是将它们添加到方法列表中并使用反射在“Then”中执行它们。也可以使用注释,如

@Sequence(step="Login" , sequenceId=1) for each method so that at runtime I can build a list of calls to be made.

考虑到方法调用序列中的任何更改都不太容易改变,这将是一个好方法。我心里想的方法很少

使用注释连接序列
使用xml连接序列
使用文本文件提及序列(几乎与上面相同)

有没有更好的方法在运行时构建图并执行序列?还有任何缺点吗?

谢谢

0 个答案:

没有答案