ruby - rails里面的feature文件是干什么用的?平时用的多吗?
高洛峰
高洛峰 2017-04-24 09:09:29
0
3
740

我看了一下,好像还是语义化的,非常神奇,这个特性是怎么用的呢?

Then "I should be served coffee" do @machine.dispensed_drink.should == "coffee" end
高洛峰
高洛峰

拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...

全部回复 (3)
黄舟

这个不是 Rails 的东东,这是 Cucumber 的 steps definition,Cucumber 是一个 BDD 的验收测试框架,你看到的这个部分就是测试断言的一段代码。Cucumber 采用的是一种接近自然语言的 DSL,所以语法很人性化。不过程序员本身不太追求 Cucumber 的风格,这个多用于商用化的测试脚本。程序员本身更偏爱程序化的语法,适当的语义化就足够了,在 Ruby 的世界里,MiniTest 和 RSpec 这两类测试框架更受欢迎一些。


补充,仔细想了一下,这也可能不是 Cucumber。我一开始认为是它是因为Then这个方法,但是 Cucumber 似乎是在 Scenario 里才用Then吧?(记忆模糊)

若说是 RSpec 之类,有Then吗?也许是扩展了 DSL?有可能,所以武断认为是 Cucumber 可能是错的。

但无论如何,这肯定是测试代码,不属于 Rails 本身。

    洪涛

    从用处来说,feature是用来做功能特性测试用例的,不仅仅是局限于Cucumber, RSpec也可以用这个,比如这里https://github.com/agilejzl/blog-eye/tree/master/spec/features,@nightire 配合gem 'rspec-example_steps'是可以有 Then 类的流程测试的。

      大家讲道理

      就是cucumber的代码。Then 位于.feature文件用,用来描述过程,或者_steps.rb文件中用来解析过程。上面提到的明显是后面一种。他位于../features/step_definitions/路径下。

        最新下载
        更多>
        网站特效
        网站源码
        网站素材
        前端模板
        关于我们 免责声明 Sitemap
        PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!