数组方法的Rspec测试用例

时间:2012-07-03 16:39:01

标签: ruby rspec tdd

我是一个相当新的编程(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)

感谢您的帮助。

2 个答案:

答案 0 :(得分:3)

我喜欢TDD,但我不建议任何人使用TDD来学习新东西!使用REPL(irb)来试验代码总是一个好主意。

你的例子充满了任何红宝石开发者的WTF:

  • 你错过了所有的END(看起来有点像python?!)
  • 你在命名工厂(你是个小伙伴吗?)
  • 您使用而不是每个
  • 你正在做一个应该是oneliner的课程
  • 通过重建核心功能重新发明轮子

除此之外,我真的不明白你的问题和代码......

您的代码的结果应该是什么?什么是“工厂”的输入

$ 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,它应该很好地为你服务。