Maison > Questions et réponses > le corps du texte
我看了一下,好像还是语义化的,非常神奇,这个特性是怎么用的呢?
Then "I should be served coffee" do
@machine.dispensed_drink.should == "coffee"
end
黄舟2017-04-24 09:11:29
Ce n'est pas du matériel Rails, c'est la définition des étapes de Cucumber est un framework de test d'acceptation BDD. La partie que vous voyez est un morceau de code pour tester les assertions. Cucumber utilise un DSL proche du langage naturel, la syntaxe est donc très conviviale. Cependant, les programmeurs eux-mêmes ne suivent pas le style de Cucumber, qui est principalement utilisé pour les scripts de tests commerciaux. Les programmeurs eux-mêmes préfèrent la syntaxe procédurale et une sémantique appropriée suffit. Dans le monde Ruby, MiniTest et RSpec sont des frameworks de test plus populaires.
De plus, après y avoir bien réfléchi, ce n'est peut-être pas du concombre. Au début, je pensais que c'était à cause de la méthode Then
, mais Cucumber semble utiliser Then
dans le scénario, n'est-ce pas ? (Mémoire floue)
Si c'est RSpec ou quelque chose comme ça, y a-t-il un Then
? Peut-être une DSL étendue ? C'est possible, alors conclure hâtivement qu'il s'agit de concombre pourrait être une erreur.
Cependant, il s'agit bien d'un code de test et n'appartient pas à Rails lui-même.
PHP中文网2017-04-24 09:11:29
En termes d'utilisation, la fonctionnalité est utilisée pour créer des cas de test de fonctionnalités fonctionnelles, non seulement limités à Cucumber, RSpec peut également l'utiliser, comme ici https://github.com/agilejzl/blog-eye/tree/ master /spec/features, @nightire peut avoir des tests de processus de classe Then avec la gemme 'rspec-example_steps'.
大家讲道理2017-04-24 09:11:29
est le code du concombre. Ensuite est utilisé dans le fichier .feature pour décrire le processus, ou dans le fichier _steps.rb pour analyser le processus. Celui mentionné ci-dessus est évidemment le dernier. Il se trouve sous le chemin ../features/step_definitions/.