我是一个相当新的编程(3个月),并试图通过TDD学习。
显然TDD的意思是首先编写测试用例,这个特别的部分我不知道如何。
代码段是:
class PhraseFactory
def initialize
@sentence = ''
end
def make_sentences_from
for i in 0 ... self.length
@sentence += self[i] + ' '
end
end
我是如何考虑测试它的:
describe "When sent a message(<< is that proper terminology?) from an array of strings"
it "Builds a sentence"
my_word_array.should_have (here is where I am unclear)sent_a_message_to(make_sentences_from)
感谢您的帮助。
答案 0 :(得分:3)
我喜欢TDD,但我不建议任何人使用TDD来学习新东西!使用REPL(irb)来试验代码总是一个好主意。
你的例子充满了任何红宝石开发者的WTF:
除此之外,我真的不明白你的问题和代码......
您的代码的结果应该是什么?什么是“工厂”的输入
$ irb
> %(you can just use join to build a sentence from an array of words).join
"you can just use join to build a sentence from an array of words"
答案 1 :(得分:1)
同时学习新语言(Ruby)和技术(TDD)可能有点过分。另一方面,我发现单元测试是澄清代码行为的好方法,也是一种很好的学习工具。这里的一个建议是研究Ruby Koans:http://rubykoans.com/
我不是Rubyist,所以我不能对它们的质量发表评论,但是我使用的是F#Koans,它们是从Ruby改编的,并且相当不错。这应该为你提供一个良好的语言入口点,以及熟悉单元测试,一旦你开始自己的项目并进入TDD,它应该很好地为你服务。