Top / Programming / Ruby / WebUnit / WebUnitのリファレンス

WebUnitのリファレンスのようなもの

正確なものではありません。個人的なメモ書き程度と思ってください。
当初、RDで書いたのですが、コンパイルエラーになるので、手書きしました。(*_*)

プロパティとは、インスタンス変数で、attr_reader か attr_accessor されているものです。

WebUnit

テストメソッドを備えたモジュール

インクルードしているモジュール

メソッド

WebUnit#assert_urls(expected,actual,message='')
リンク先のURLをテストします。
expected か相対パスの時は、 $URLBASE + expected による比較も行います。
$URLBASE やポート番号を考慮してテストします。
<a href="http://www.google.co.jp/">Google</a>
assert_urls('http://www.google.co.jp/', urls[0].href)
WebUnit#assert_input( name, type, value, actual, message="" )
inputフィールドの属性をテストします。
name == actual.name and type == actual.type and value == actual.value が真ならpass
  • name フィールド名
  • type フィールドの型
  • value フィールドの値
<input name="名前" type="text" value="値" />
assert_input('名前', 'text', '値', Response::get(@url).forms[0].parameters[0]) 
WebUnit#assert_select_option( value, data, selected, actual, message="" )
セレクトボックス(<select>)のテストをします。
value == actual.value and data == actual.data and selected == ( actual.stat == 'on' ) が真ならpass
  • value 値
  • data 表示文字列
  • selected 選択されているときはtrue
  • actual SelectOption
<select name="menu" id="menu">
<option value="perl" selected="selected">Perl</option>
<option value="ruby">Ruby</option>
<option value="c++">C++</option>
</select> options = Response::get(@url).forms[0].params['menu'].children
assert_select_option('perl', 'Perl', true, options[0])
assert_select_option('ruby', 'Ruby', false, options[1])
assert_select_option('c++', 'C++', false, options[2])
WebUnit#assert_attrs( expected, actual, message="" )
タグの属性を比較します。
classはObject#classと、idはObject#idと比較されてしまい、うまくいかない?
linkもUtils#orthop_url(url)されてしまう?
  • expected 属性のHash({|属性名, 値| ...})
  • actual HtmlElem
<table border="1">
assert_attrs({'border' => '1'}, Response::get(@url).tables[0])
WebUnit#assert_include( expected, actual, message="" )
actual が expected を持っているかテストします。
actual.has?( expected ) or actual.search( expected ) != [] が真ならpass
  • expected String か HtmlElem
  • actual HtmlElem
<table><tr><td>てすと</td></tr></table>
assert_include('てすと', Response::get(@url).tables[0])
WebUnit#assert_title( expected, actual, message="" )
actualのタイトルをテストします。
actual.title == expected が真ならpass
  • expected タイトル
  • actual Response
assert_title('WebUnit Sample', Response::get(@url))

Response

サーバからの返値を扱うクラス

インクルードしているモジュール

プロパティ

クラスメソッド

Response.get(url,data=nil, up=nil)
url(url に :// が含まれないときは、$URLBASE + url)にGETでアクセスした結果(Response)を返します。
  • url URL
  • data
  • up[0] Basic認証のユーザ名
  • up[1] Basic認証のパスワード
#サーバからの返値を取得する
response = Response::get(@url)
Response.post(url,data=nil)
url(url に :// が含まれないときは、$URLBASE + url)にPOSTでアクセスした結果(Response)を返します。
  • url url
  • data
#サーバからの返値を取得する
response = Response::post(@url)
Response.html( html)
htmlを持ったResponseを返します。
HTMLファイルの静的なテストに使用します。

メソッド

Response#title
タイトルを返します。
Response#find( tag )
Htmlelem#find と同じです。
tagのタグ名を持ったHtmlElemの配列(Array)を返します。
  • tag タグ名
#テキストリンクの一覧を出力する
Response::get(@url).find('a').each {|tag|
p tag
}
Response#search( str )
Htmlelem#search と同じです。
値(@data)にstrを持ったHtmlElemの配列(Array)を返します。
  • str 値
#値にRubyを持つタグの一覧を出力する
Response::get(@url).search('Ruby').each {|tag|
p tag
}
Response#readlink( str )
Htmlelem#readlinkと同じです。
strでリンクされたurlのResponseを取得します。
  • str リンク文字列
<a href="http://www.ruby-lang.org/ja/">Ruby</a>
response = Response::get(@url).readlink('Ruby')
puts response.title #=>オブジェクト指向言語Ruby
Response#click( str, x=nil, y=nil )
strのリンク文字列を実行します。
リンクがなければなければ、SubmitボタンかImageボタンを submit します。
Response#submit( button=nil,x=nil,y=nil)
Response.forms[0].submit の省略形です。
Response#param
Response.forms[0].params の省略形です。
Response#image
Response.images[0] の省略形です。
Response#link
Response.links[0] の省略形です。
Response#form
Response.forms[0] の省略形です。
Response#table
Response.tables[0] の省略形です。
Response#frame
Response.frames[0] の省略形です。
Response#redirect
HTTPレスポンスのコードが302のとき、最初のリンク(links[0])を実行します。
Response#opens
JavaScriptによるリダイレクト。
JSciriptOpenObjectを返します。
response = Response::get(url).opens[0].read
Response#open
Response.opens[0] の省略形
Response#pbody
body(Response#format)を出力する。
Response#format

HtmlElem

HTMLのタグを表すクラス
< @tag name="@name" @attrs...>@data<child />...</tag>

プロパティ

メソッド

HtmlElem#find(tag)
tagのタグ名を持ったHtmlElemの配列(Array)を返します。
  • tag タグ名
#テキストリンクの一覧を出力する
Response::get(@url).find('a').each {|tag|
p tag
}
HtmlElem#search(data)
値(@data)にdataを持ったHtmlElemの配列(Array)を返します。
  • data 値
#値にRubyを持つタグの一覧を出力する
Response::get(@url).search('Ruby').each {|tag|
p tag
}
HtmlElem#readlink(str)
strでリンクされたurlのResponseを取得します。
  • str リンク文字列
<a href="http://www.ruby-lang.org/ja/">Ruby</a>
response = Response::get(@url).readlink('Ruby')
puts response.title #=>オブジェクト指向言語Ruby
HtmlElem#has?(elem)
elemを持っているときは、trueを返します。
  • elem HtmlElem か String
HtmlElem#print(indent='')
self以下のツリー構造を出力します。

Image

<img>クラス
< img src="@src" alt="@alt" />

スーパークラス

プロパティ

Table

<table>クラス

スーパークラス

プロパティ

メソッド

Table#at(row,col=nil)
row と col が指定されているときは、 TableCellを返します。
row のみ指定されているときは、TableRowを返します。
row と col は 1 から始まります。
  • row 行ののインデックス
  • col 列のインデックス
<table><tr><td>Ruby</td></tr></table>
puts Response::get(@url).tables[0].at(1, 1) #=>Ruby
Table#row_index( data, col=1 )
列(col)の data を持っている TableCell を返します。
見つからないときは、 nilを返します。
Table#col_index( data, row=1 )
行(row)の data を持っている TableCell を返します。
見つからないときは、 nilを返します。

TableRow

<tr>クラス

スーパークラス

メソッド

TableRow#size
列数を取得します。
TableRow#at( c )
c列の TableCell を返します。
c は 1 から始まります。

TableCell

<td>クラス
< td colspan="@colspan" rowspan="@rowspan">@data</td>

スーパークラス

プロパティ

Form

<form>クラス
< form name="@name" action="@action" method="@method" encoding="@encoding">

スーパークラス

プロパティ

メソッド

Form#set_params( hash )
フィールド名で、フィールドを設定します。
  • hash {|フィールド名,値|,...}
Form#set_parameters( array )
フィールドのインデックスで、フィールドを設定します。
  • array [値,...]
Form#store_test_data(fields,data,s=',',button=nil)
データベースやファイルなどに蓄積されたCSVデータを、各フィールドに設定し、submitします。
Form#submit(button=nil,x=nil,y=nil)
フォームをsubmitし、結果(Response)を取得します。
  • button ボタン名、または値
  • x イメージボタンのx座標
  • y イメージボタンのy座標

JSciriptOpenObject

JavaScriptによる処理を扱うクラス

スーパークラス

プロパティ

メソッド

JSciriptOpenObject#read
@urlのResponseを返します。

Cookies

クッキーを扱うクラス

インクルードしているモジュール

プロパティ

メソッド

Cookies.clear
クリアします。
Cookies.add( name, value, path )
クッキーに 追加します。
  • name 名前
  • value 値
  • path パス
Cookies.list
クッキーの名前の配列を取得する
Cookies.has?(name)
名前が name のクッキーを持っているときはtrue

Frame

<frame>lクラス

スーパークラス

プロパティ

メソッド

Frame#read
src を取得して Response を返す

Param

フォームの要素の基本クラス

スーパークラス

プロパティ

Input

フォームのフィールドの基本クラス

スーパークラス

メソッド

Input#on
状態を on にする
Input#off
状態を off にする

InputRadio

<input type="radio">タグ
< input type="radio" name="@name" value="@value"/>

スーパークラス

メソッド

InputRadio#on
状態を on にし、関連するフィールドの状態を off にする
 <input name="radio" type="radio" value="perl" checked="checked" />Perl<br />
<input name="radio" type="radio" value="ruby" />Ruby<br />
<input name="radio" type="radio" value="C++" /> C++
params = Response::get(@url).forms[0].params
params['ruby'].on
InputRadio#query_data
Submitされた時に送信するデータを取得する。
状態が on で名前が設定されているときは、name=vlaueを返す。それ以外の時はnilを返す。
InputRadio#multipart_query_data( boundary)
マルチパートで、Submitされた時に送信するデータを取得する。
InputRadio#value=(v)
v が @value と等しければ状態を on に、等しくなければ off にする。

InputCheckbox

<input type="checkbox">クラス
< input type="checkbox" name="@name" value="@value">

スーパークラス

メソッド

InputCheckbox#query_data
Submitされた時に送信するデータを取得する。
状態が on で名前が設定されているときは、name=vlaueを返す。それ以外の時はnilを返す。
InputCheckbox#multipart_query_data( boundary)
マルチパートで、Submitされた時に送信するデータを取得する。

InputSubmit

<input type="submit">クラス
< input type="submit" name="@name" value="@value">

スーパークラス

メソッド

InputSubmit#query_data
Submitされた時に送信するデータを取得する。
状態が on で名前が設定されているときは、name=vlaueを返す。それ以外の時はnilを返す。

InputImage

<input type="image">

スーパークラス

プロパティ

メソッド

InputImage#query_data
Submitされた時に送信するデータを取得する。
@name + '.x=' + @x.to_s + '&' + @name + '.y=' + @y.to_s
InputImage#multipart_query_data( boundary)
マルチパートで、Submitされた時に送信するデータを取得する。

InputReset

<input type="radio">クラス

スーパークラス

メソッド

InputReset#qurey_data
nilを返します。
InputReset#multipart_query_data( boundary)
nilを返します。

Select

<select>クラス
< select name="@name">

スーパークラス

プロパティ

メソッド

Select#end_option
先頭の項目を選択する(?)
Select#select(arr)
指定した項目のみ、選択状態にする。
  • arr 選択する項目のインデックスまたは値の配列
<select name="menu" id="menu">
<option value="perl" selected="selected">Perl</option>
<option value="ruby">Ruby</option>
<option value="c++">C++</option>
</select>
#C++を選択状態にする。
Response::get(@url).form.params['menu'].select('C++')
Select#query_data
Submitされた時に送信するデータを取得する。
Select#multipart_query_data( boundary)
マルチパートで、Submitされた時に送信するデータを取得する。
Select#value
選択されている項目を返します。
選択されている項目がないときは、nilを返します。
選択されている項目が1つの時は、選択されている項目を返します。
複数の項目が選択されている時は、項目の配列を返します。
Select#value= (v)
項目 v を選択状態にします。そのほかの項目は非選択状態にします。

SelectOption

<option>クラス
< option value="@value">@data</option>

スーパークラス

プロパティ

メソッド

SelectOption#SelectOption
値(value)があれば値を、なければ data を返します。
SelectOption#select
状態を on にします。
SelectOption#deselect
状態を off にします。
SelectOption#query_data
Submitされた時に送信するデータを取得する。
SelectOption#multipart_query_data( boundary)
マルチパートで、Submitされた時に送信するデータを取得する。

Textarea

<textarea>クラス
< textarea name="@name" value="@value">@data</textarea>

スーパークラス

メソッド

Textarea#SelectOption
値(value)があれば値を、なければ data を返します。
Textarea#query_data
Submitされた時に送信するデータを取得する。
Textarea#multipart_query_data( boundary)
マルチパートで、Submitされた時に送信するデータを取得する。

InputFile

<input type="file">クラス

スーパークラス

メソッド

InputFile#query_data
nilを返します。
Textarea#multipart_query_data( boundary)
マルチパートで、Submitされた時に送信するデータを取得する。

Utils

メソッド

Utils#parse_url(url)
url を protocol, hostname, port, path の配列にして返します。
Utils#orthop_url(url)
Utils#parse_url で整形されたURLを返します。
Utils#complete_url(url,base)
base を備えたURLを返します。

最終更新日: 2004年07月23日