Ruby中的TestUnit測試框架

2021-04-22 16:44:32 字數 1666 閱讀 8453

先看**:

song.rb

class song

def initialize(name, artist, duration)

@name     = name

@artist   = artist

@duration = duration

enddef to_s

"song: #@name--@artist (#@duration)"

endend

class karaokesong < song

def initialize(name, artist, duration, lyrics)

super(name, artist, duration)

@lyrics = lyrics

enddef to_s

super + " [#@lyrics]"

endend

#song = karaokesong.new("shenbin", "fnl", 260, "and now, the...")

#puts song.to_s

#puts song.inspect

songlist.rb

class songlist

def initialize

@songs = array.new

[email protected](song)

self

enddef delete_first

@songs.shift

enddef delete_last

@songs.pop

enddef (index)

@songs[index]

endend

test_song_list.rb

require "test/unit"

require "song.rb"

require "songlist.rb"

class testsonglist < test::unit::testcase

def test_delete

list = songlist.new

s1 = song.new('t1', 'a1', 1)

s2 = song.new('t2', 'a2', 2)

s3 = song.new('t3', 'a3', 3)

s4 = song.new('t4', 'a4', 4)

assert_equal(s1, list[0])

assert_equal(s3, list[2])

assert_nil(list[4])

assert_equal(s1, list.delete_first)

assert_equal(s2, list.delete_first)

assert_equal(s4, list.delete_last)

assert_equal(s3, list.delete_last)

assert_nil(list.delete_last)

endend

執行後輸出:

loaded suite test_song_list

started

.finished in 0.0 seconds.

1 tests, 8 assertions, 0 failures, 0 errors

ruby中的模組

什麼是模組 模組 module 是ruby特有的功能之一。類用來表現具有資料與行為 程式 的 東西 而模組大致來說,則是只有程式部分的集合體。類與模組最大的不同在於 1.模組不能建立例項 2.模組不能繼承 模組的用法 1 提供命名空間 命名空間 namespace 是為了讓方法 常數 類名稱不互相衝...

Ruby中的迴圈

1 首先是while迴圈和until迴圈 這是兩種相反的迴圈,舉例說明 x 1 until x 100 puts x x x 2 end 輸出 124 8163264 x 1 until x 100 puts x x x 2 break if x 200 end 永遠都不會執行 而while與unt...

ruby 中的符號

1.1 建立乙個繫結到特定物件的class a my string class book to sym 2.book 3.track.to s 4.track 2.相同的符號是乙個物件,相同的字元並不一定是乙個物件 這就是符號和字串最大的差別,符號是不可變的,不能對乙個符號進行修改。所以說,兩個看起...