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
サーバからの返値を扱うクラス
インクルードしているモジュール
プロパティ
- url
- method "GET","POST",...
- response サーバからの返値
- body エンティティボディ。<html>...</html>
- code HTTPのリザルトコード。
- tree オブジェクトツリー
- links Linkの配列
- forms Formの配列
- tables Tableの配列
- frames Frameの配列
- images Imageの配列
- username ユーザ名
- password パスワード
クラスメソッド
- 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)を返します。
-
#サーバからの返値を取得する
response = Response::post(@url)
- Response.html( html)
- htmlを持ったResponseを返します。
HTMLファイルの静的なテストに使用します。
メソッド
- Response#title
- タイトルを返します。
- Response#find( tag )
- Htmlelem#find と同じです。
tagのタグ名を持ったHtmlElemの配列(Array)を返します。
-
-
#テキストリンクの一覧を出力する
Response::get(@url).find('a').each {|tag|
p tag
}
- Response#search( str
)
- Htmlelem#search と同じです。
値(@data)にstrを持ったHtmlElemの配列(Array)を返します。
-
#値にRubyを持つタグの一覧を出力する
Response::get(@url).search('Ruby').each {|tag|
p tag
}
- Response#readlink(
str )
- Htmlelem#readlinkと同じです。
strでリンクされたurlのResponseを取得します。
-
<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>
プロパティ
- tag タグ名
- data 値。タグは含まない。
- attrs 属性のHash({|属性名=>値|,...})
- children このタグが持っているタグ(HtmlElem)の配列
- array dataの配列
- name attrs['name']
メソッド
- HtmlElem#find(tag)
- tagのタグ名を持ったHtmlElemの配列(Array)を返します。
-
#テキストリンクの一覧を出力する
Response::get(@url).find('a').each {|tag|
p tag
}
- HtmlElem#search(data)
- 値(@data)にdataを持ったHtmlElemの配列(Array)を返します。
-
#値にRubyを持つタグの一覧を出力する
Response::get(@url).search('Ruby').each {|tag|
p tag
}
- HtmlElem#readlink(str)
- strでリンクされたurlのResponseを取得します。
-
<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を返します。
- HtmlElem#print(indent='')
- self以下のツリー構造を出力します。
Image
<img>クラス
< img src="@src" alt="@alt" />
スーパークラス
プロパティ
- src
- alt
- width
- height
- border
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">
スーパークラス
プロパティ
- name
- action
- method
- encoding
- parameters フォームに含まれるフィールドの配列
- params フォームに含まれるフィールドのHash({|名前,HtmlElem|,..})
メソッド
- Form#set_params( hash
)
- フィールド名で、フィールドを設定します。
- Form#set_parameters(
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 {|[name, path], value|,...} のHash
メソッド
- Cookies.clear
- クリアします。
- Cookies.add( name, value, path
)
- クッキーに 追加します。
- Cookies.list
- クッキーの名前の配列を取得する
- Cookies.has?(name)
- 名前が name のクッキーを持っているときはtrue
Frame
<frame>lクラス
スーパークラス
プロパティ
- src attrs['scr']
- name attrs['name']
メソッド
- Frame#read
- src を取得して Response を返す
Param
フォームの要素の基本クラス
スーパークラス
プロパティ
- name
- type attrs["type"]
- relations 配列
- stat attrs.key?( 'checked' ) ? 'on' : 'off'
- value attrs["value"]
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">
スーパークラス
プロパティ
- x submit時のx座標
- y submit時のy座標
メソッド
- 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">
スーパークラス
プロパティ
- options 項目(SelectOption)の配列
メソッド
- Select#end_option
- 先頭の項目を選択する(?)
- Select#select(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日