我正在尝试了解BDD并且我已经阅读了有关婴儿步骤的内容。他们是如何工作的?我想弄清楚。
例如,使用以下功能:
Feature: Months and days to days
In order to see months and days as days
As a date conversion fan
I need a webpage where users can enter days and
months and convert them to days.
Scenario: Convert 12 months and 0 days to days
Given “12” months And “0” days
When I click on convert button
Then I should get: 360
我应该创建一个代码来使步骤方法中的转换正确,然后重构代码并将它们放在类中,还是应该从类开始?
看起来很简单,但我很困惑。我想了解婴儿步骤,我不想打破它......
谢谢。
答案 0 :(得分:1)
据我所知,宝贝步骤意味着您必须逐步执行少量更改。它类似于TDD:编写新测试,编写代码,确保它不起作用,使其工作正常,编写新测试......等 让我们看看你的例子:
将12个月零天转换为天数给定“12”个月和“0”天 当我点击转换按钮然后我应该得到:360
我认为,你要做的第一件事就是像“转换器”一样创建类名。第一步完成。下一个小步骤是创建方法
int convertToDays(int monthCount,int daysCount)
按此步骤操作。您首先描述代码的行为,然后编写代码。 接下来的步骤将是:
我希望它会对你有所帮助。感谢。
答案 1 :(得分:0)
你的问题很难理解,但是通过宝贝步骤,作者可能意味着从一个非常基本的场景开始,然后开始更复杂的场景。对于您描述的故事,最基本的示例可能是输入0个月和0天,并验证结果是0天。从那里你可以只输入几天或几个月,最后输入一个包含月和日的例子。
答案 2 :(得分:0)
您还没有说过您正在使用什么平台,或者您是否还有任何代码。红宝石? Rails的? Java的? C#?蟒?
婴儿步骤意味着以非常小的步骤移动,不出所料,每次都重新运行测试。 “Baby steps”最初被设想为应用于单元测试级别的内部红绿重构循环。 BDD已经出现并在验收测试级别添加了外部循环。 BDD风格是发展为“从外到内”。
还有另一个经常组合使用的短语,类似于“让编译器指导您的步骤”。
假设你没有代码,并且你正在使用说Cucumber和RSpec - 其他平台上的描述不会有太大变化 - 当你用黄瓜运行你的故事它会告诉你你有未实现的步骤,甚至给你基本的建议至于如何实现你的When When和Then。
所以,宝贝步骤。拿其中一个,让我们说“给定”,并使用建议的实现。你在Ruby中创建了一些步骤代码,这个模式与行匹配,然后调用什么......现在没什么。在这段代码中,它可能只是简单地将参数转换为整数(稍后您可能会构建构造函数,但现在只做最简单的事情)。
当你再次运行黄瓜时,它会抱怨两个缺失的步骤,但是关于你填写的步骤的消息已经改变了。
现在填写下一步。再次运行黄瓜时,只有最后一步失败。但是你必须在第二步中添加更多内容。等
查看本教程,它会给你一些想法。
http://www.slideshare.net/josephwilk/outsidein-development-with-cucumber-and-rspec