>  Q&A  >  본문

ruby - rails里面的feature文件是干什么用的?平时用的多吗?

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

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

모든 응답(3)나는 대답할 것이다

  • 黄舟

    黄舟2017-04-24 09:11:29

    이것은 Rails 관련 내용이 아니며 Cucumber의 단계 정의입니다. Cucumber는 BDD 수용 테스트 프레임워크입니다. 표시되는 부분은 어설션을 테스트하기 위한 코드입니다. Cucumber는 자연어에 가까운 DSL을 사용하므로 구문이 매우 사용자 친화적입니다. 그러나 프로그래머들 스스로는 상용 테스트 스크립트에 주로 사용되는 오이 스타일을 추구하지 않습니다. 프로그래머 자신은 절차적 구문을 선호하며 적절한 의미론이면 충분합니다. Ruby 세계에서는 MiniTest와 RSpec이 더 널리 사용되는 테스트 프레임워크입니다.


    게다가 곰곰이 생각해 보니 오이가 아닐 수도 있습니다. 처음에는 Then 방식 때문인 줄 알았는데 오이가 시나리오에서 Then를 쓰는 것 같죠? (흐릿한 기억)

    RSpec 같은거면 Then도 있나요? 어쩌면 확장된 DSL일까요? 가능하므로 오이라고 성급하게 결론을 내리는 것은 틀릴 수도 있습니다.

    그러나 이는 확실히 테스트 코드이며 Rails 자체에 속하지 않습니다.

    회신하다
    0
  • PHP中文网

    PHP中文网2017-04-24 09:11:29

    사용 측면에서 기능은 기능적 기능 테스트 사례를 만드는 데 사용되며 Cucumber에 국한되지 않고 RSpec에서도 사용할 수 있습니다. 여기 https://github.com/agilejzl/blog-eye/tree/ master /spec/features, @nightire는 gem 'rspec-example_steps'를 사용하여 클래스 프로세스 테스트를 수행할 수 있습니다.

    회신하다
    0
  • 大家讲道理

    大家讲道理2017-04-24 09:11:29

    은 오이의 코드입니다. 그런 다음 .feature 파일에서 프로세스를 설명하거나 _steps.rb 파일에서 프로세스를 구문 분석하는 데 사용됩니다. 위에서 언급한 것은 분명히 후자이다. 이는 ../features/step_definitions/ 경로 아래에 있습니다.

    회신하다
    0
  • 취소회신하다