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

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

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

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

Antworte allen(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/路径下。

Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!