我看了一下,好像還是語義化的,非常神奇,這個特性是怎麼用的呢?
Then "I should be served coffee" do @machine.dispensed_drink.should == "coffee" end
拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...
這個不是 Rails 的東東,這是 Cucumber 的 steps definition,Cucumber 是一個 BDD 的驗收測試框架,你看到的這個部分就是測試斷言的一段程式碼。 Cucumber 採用的是一種接近自然語言的 DSL,所以語法很人性化。不過程式設計師本身不太追求 Cucumber 的風格,這個多用於商用化的測試腳本。程式設計師本身更偏好程式化的語法,適當的語意化就足夠了,在 Ruby 的世界裡,MiniTest 和 RSpec 這兩類測試框架更受歡迎一些。
補充,仔細想了一下,這也可能不是 Cucumber。我一開始認為是它是因為 Then 这个方法,但是 Cucumber 似乎是在 Scenario 里才用 Then 吧? (記憶模糊)
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/路徑下。
這個不是 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/路徑下。