cucumber vs ***

昨天看了些cucumber,简单说说我的想法


cucumber应该用来做集成、功能测试,而实际应用还需要通过其他测试框架(rspec, test::unit……)来做单元测试。

cucumber测试当中有用自然语言描述feature文档和相应的测试程序steps,我想steps应该是features文档的程序化版本(ruby,python……),

在描述上steps与 features有很多重复,也就是说你改了features一些描述,也差不多你也要改改steps相应的描述内容,这样能使行为描述一致。
而features即特定格式的需求描述,而需求是不确定的,改的动作应该算是够频繁,而反过来steps的改的也够频繁,
这样也就降低了测试的速度。


照上面描述,能不能把steps去掉,直接features(documents) -》 app program 来测试,

我就把归为DDD(Document Driven Development)

通过文档(documents),结合语言的注释来驱动测试,拿个cucumber自带的的加法的一个例子说事吧


文档


功能:加法
  为了避免一些愚蠢的错误
  作为一个数学白痴
  我希望有人告诉我数字相加的结果

场景: 相加
    输入 56 相加11
    输入 123 相加6


程序

class Calculator
  #相加------------于文档的"相加"关键字匹配,然后传入文档的参数
  def add(*a)
    a.inject(0){|n,sum| sum+=n}
  end
end

通过文档的相应的关键字与ruby method的注释匹配来建立关联,然后文档可以传入想要参数到方法


上面说的,用的都很简单,也没考虑很多细节,至于这种思想是否可行,技术是否可行,有待考察,研究。


你可能感兴趣的:(框架,python,单元测试,Ruby,rspec)