
学習時間 | 7時間 |
---|---|
難易度 | 初級 |
質問投稿 | 可 |
RubyでSlackBotを作りながらユニットテストを学ぼう!
Rubyでユニットテストを基礎から学びましょう!Minitestでの基本的なテストからスタブやモックといったテスト手法まで、実践的なテストを身につけれます。テスト対象としてSlackで動作するBotを開発するので、ユニットテストとBot開発の2つを1度に学べます。
Rubyで手を動かしながらユニットテストを学べる講座です。
ユニットテストというと「難しい」や「面倒」みたいなイメージがないでしょうか?またユニットテストを完璧にすればバグはなくなるみたいなイメージがあったりしないでしょうか?
ユニットテストも銀の弾丸ではなく、これを使えばバグがなくなるという完璧なものではありません。ただ、うまく使えれば開発を快適にし、品質向上に役に立つツールであることは間違いありません。うまく使うためにはどうすればいいのでしょうか?これは実際に使って学ぶ以外に方法はないです。
より実践的にテストが書けるようになるには、テスト対象にも実践的な題材が必要となります。この講座では題材にSlackBotを選びました。Botは入出力ともにテキストなのでプログラムがわかりやすく、また開発方法を知っておくとDevOpsなど開発の効率化に活用しやすいです。
Botという手軽な題材を扱ってユニットテストを実践で身につけてみましょう!
この講座が終わるときにはユニットテストに対する印象や考え方がきっと変わっているはずです。
学習内容
- ユニットテストの考え方を理解し、Rubyで実装できるようになる
- Minitest
- Mocha(モック、スタブ)
- カバレッジ
- Rubyでボット開発ができるようになる
- Rubotyフレームワーク
- Slack接続
完成物のイメージ
SlackBotの動作イメージ
「四ヶ国語対応版のHello World」をBotで実装します。
「Hello」とBotに話しかけると「World!」と返事し、「こんにちは」と話しかけると「世界!」と返事します。スペイン語・フランス語でも同様に動作します。
ユニットテストの実行イメージ
Botのソースコードに対するユニットテストを実装し、テストがすべて成功することを確認します。
カバレッジレポートのイメージ
ユニットテストの網羅率をHTMLで表示します。
本教材の対象者
- ユニットテストの基礎を学びたい方
- RubyでSlackBotを作ってみたい方
受講における必要条件
- Rubyの初歩的な知識(変数、配列、連想配列、if文、each文、メソッド・クラスの概念を理解している)
- 簡単なコマンドラインの知識(
cd
、ls
、pwd
、mkdir
、cat
、vi
を使ったことがある)
Rubyを一度も触ったことがない方は、まずはProgate等で学習することをおすすめします。
学ばないこと
- 本講座はBotの開発とそれに対するユニットテストの実装を目的としており、RubyやBundlerといった開発ツールの解説は詳しくしていません。細かく知りたい方はご自身で調べて頂けるようお願いします。
本教材の対応バージョン
- Ruby 2.6系
- Ruboty 1系
- Minitest 5系
本教材で質問対応可能なOSや環境
確実に回答できるのは macOS になります。ただ質問頂いたら、他の環境でも調べてみることはできると思います。
本教材の構成
0章 はじめに
本教材を進める上での環境を整えたり、設計を解説していきます。
1章 Ruboty
RubotyというRubyのBotフレームワークについて解説します。
この章でRubotyを使ったBotのプログラムを開発します。
2章 Minitest
Minitestを使ったユニットテストについての設計と実装について解説します。
カリキュラム
- 2-1 はじめてのMinitest
- 2-2 Hello Worldのテスト
- 2-3 スタブ
- 2-4 モック
- 2-5 Handlerのテスト
- 2-6 ユニットテストを快適にするツール