パRails🚂
rails s
できない可能性が高いです。
@shodan
@motohiro-mm
7-4-3 「システムテストを失敗させる」から
7-4-6 「ログインが必要なページのテストを書く」まで。
PR:https://github.com/PerfectRubyonRails-Rindoku/Perfect_Ruby_on_Rails_Ch6/pull/19
7-4-7 「データを入力して登録するテストを書く」から。🚂
@sharoa
@hiromisugie
application_system_test_case.rb
でusing: headless_chrome
とするとヘッドレスブラウザでChromeを起動せずにシステムテストを行うことができる(Chromeを使うときはusing: chrome
)sleep 5
とすると5秒停止してくれる。Chrome起動で画面を見るときに一瞬で画面が変わってしまう時などに便利。setup
メソッドは、いくつかのテストをするにあたって共通で先に行う動作をすることができるteardown
メソッドは、最後に行う動作を共通化して書ける@shodan
take_faild_screenshot
というメソッドがテスト終了時に呼び出されているからだった。take_screenshot
メソッドを使えばいつでも好きなタイミングでスクショを撮れるというのは知れてよかった気がします。@moegi29
@motohiro-mm
bin/rails g test_unit:scaffold モデル名
take_failed_screenshot
メソッド、常にスクショを撮る:take_screenshot
メソッドrequire_relative
やinclude
のところは、言われて「なるほどな〜」ととても思いましたsetup
:テストの前に行う共通動作、teardown
:テストが終わった後に行う共通動作@motohiro-mm
@ayu-0505
7-4-7 「データを入力して登録するテストを書く」から
7-4-8 「ダイアログを操作するテストを書く」まで。
PR:https://github.com/PerfectRubyonRails-Rindoku/Perfect_Ruby_on_Rails_Ch6/pull/20
7-5 「コントローラに対する機能テスト」から。🚂
@sharoa
fill_in
メソッドとselect
メソッドを使ってフォームにデータを入力して登録するテストを書くことができる。run
とassertions
の数が違うのがなんか気になる。。。。travel_to
メソッド覚えておこう。(メソッド名が素敵ですねw)@hiromisugie
fill_in
やselect
などのメソッドを使って画面に入力したり、click_on
メソッドで画面を進んでいくのを設定して実際に画面が動くのを見るのは、なんというか楽しい(書籍で既に書かれたものを見る分には楽しいけど、自分でゼロから書くとなるとかなりモタつきそうだなとも思った)assert_difference
というのを初めて知った。assertなんちゃらは画面上で表示されているものに対して行うものだと思っていたのですが、イベントの数が1つ減った、みたいなこともテストできることを知った。travel_to
という名前なのが、洒落ているなと思った@moegi29
@shodan
select
メソッドで、セレクトフォームへの入力ができるaccept_confirm
メソッドにブロックを渡すと、そのブロックの操作の中で出現したダイアログに対してOKボタンを押させることができるtravel_to
メソッドに時刻とブロックを渡すと、その時刻を現在時刻として、ブロック内の操作を行なってテストすることができる(テスト実行時の時刻を制御するヘルパー)assert_difference
の第一引数の処理が「文字列」であることが地味にハマりポイントだったことがあります
assert_difference("Event.count", -1)
の第一引数が「文字列」@ayu-0505
fill_in
メソッドとselect
メソッドを使ってフォームにデータ入力を行う。accept_confirm
メソッドを使用すると、渡されたブロック内で表示されたダイアログに対してOKボタンをクリックしてくれる。(ということはキャンセルボタンをクリックするメソッドもあるかも?)assert_difference
メソッドでは渡したブロック内の処理の前後の変化を確認できる。travel_to
メソッドを使用するとブロックで引き渡した時刻に現在時刻が差し代わる。assert〜
系のメソッドはJSの表示を最短時間で待ってくれるらしいので、色々活用したい。@motohiro-mm
fill_in
メソッドとselect
メソッドでフォームにデータを入力できる
accept_confirm do ~ end
で書くassert_difference
渡したブロック中の処理の前後で結果が変わっていることをみているtravel_to
ヘルパーでタイムスリップできるor
or
By clicking below, you agree to our terms of service.
New to HackMD? Sign up
Syntax | Example | Reference | |
---|---|---|---|
# Header | Header | 基本排版 | |
- Unordered List |
|
||
1. Ordered List |
|
||
- [ ] Todo List |
|
||
> Blockquote | Blockquote |
||
**Bold font** | Bold font | ||
*Italics font* | Italics font | ||
~~Strikethrough~~ | |||
19^th^ | 19th | ||
H~2~O | H2O | ||
++Inserted text++ | Inserted text | ||
==Marked text== | Marked text | ||
[link text](https:// "title") | Link | ||
 | Image | ||
`Code` | Code |
在筆記中貼入程式碼 | |
```javascript var i = 0; ``` |
|
||
:smile: | ![]() |
Emoji list | |
{%youtube youtube_id %} | Externals | ||
$L^aT_eX$ | LaTeX | ||
:::info This is a alert area. ::: |
This is a alert area. |
On a scale of 0-10, how likely is it that you would recommend HackMD to your friends, family or business associates?
Please give us some advice and help us improve HackMD.
Do you want to remove this version name and description?
Syncing