周末有人给了我一个 kata 工作。在开始之前,我真的只是想收集一些想法。我不是在寻找解决方案,只是关于最佳方法/实践的一些想法。
从我的谈话来看,我似乎需要使用 BDD --> ATDD(与 gherkin 中的场景相关) --> TDD 方法。我只是想找出最好的方法。
我目前的想法是
1)创建一个specflow项目并将用户故事提炼成一个小黄瓜。
2)使用 GWT 语法在小黄瓜(场景)中创建相关的验收测试,从而在 [binding] 类中生成我的 ATTD 样式测试(右键单击“生成”)。
3) 使小黄瓜 ATDD 测试通过。
我遇到的难题是,直接链接到我的小黄瓜文件中的 ATTD 测试的测试没有给我足够低级别的测试。
那我该怎么办?我要编写高级 ATDD 测试,然后在使它们通过之前,我是否深入挖掘并编写纯 TDD 测试来设计我的低级对象?
是的,我还没有弄清楚如何以完全 BDD 方式(纯风格)工作,但我只是想知道我是如何挖掘的。我很欣赏您应该逐步工作并完成一项测试并通过,但我觉得我需要从高级 ATDD 测试开始,然后更深入,所以在我使低级代码工作之前,更高级别的测试将无法工作,但要遵循TDD 我需要测试那个低级代码,所以我已经打破了 1 个单元测试然后通过然后重构的原则......
希望有人明白如何告诉我“如何”在没有实际操作的情况下解决这个问题。但这是提供给我的问题......(我很感激如果测试人员看到这一点,他们可能会因为在这里问我而失败,但更重要的是我学习而不是得到这份工作)。是的,我知道我很生气 :-)
我也很想知道我是否应该为我的纯 TDD 测试创建一个单独的项目。最好的项目结构是什么?我正在考虑 1 个 specflow 项目和一个 .test 项目以及一个类库和一个用于运行时的控制台应用程序。
PS任何帮助我的人都有我欠他们的人情。拥抱或慈善捐赠。或者我想这里的 +1 是你真正想要的:-/
剪刀石头布
User Story Front
+--------------------------------------------------+
| |
| Title: Waste an Hour Having Fun |
| |
| As a frequent games player, |
| I'd like to play rock, paper, scissors |
| so that I can spend an hour of my day having fun |
| |
| Acceptance Criteria |
| - Can I play Player vs Computer? |
| - Can I play Computer vs Computer? |
| - Can I play a different game each time? |
| |
+--------------------------------------------------+
User Story Back
+--------------------------------------------------+
| |
| Technical Constraints |
| |
| - Doesn't necessarily need a flashy GUI |
| (can be simple) |
| - Can use any modern language |
| |
| - Libs / external modules should only be used |
| for tests |
| - Using best in industry practices |
| |
+--------------------------------------------------+
不懂游戏?http://en.wikipedia.org/wiki/Rock-paper-scissors
我正在寻找一个缩小版本(想想最小的可行产品)。没有数据库(即会话存储),简单的界面 - 2 或 3 小时的工作(顶部)是完全合理的。我不是在寻找一个完整的东西,只是一个精心制作的小东西。如果这是 Java 而不是 .NET,并且更面向后端,我会使用控制台应用程序。在 C# 中寻找单元测试和精心设计的代码。我正在寻找的是碰巧使用 C# ASP.Net MVC 的编码器。