pytestでTDD
Test Driven Development with pytest を拝読してのメモ書き。
unittestはクラスから書く必要があるが、pytestはfunctionで書き始めることができる。
TDDとは
- 失敗するテストを書く
- テストを通すコードを書く
- 必要に応じてリファクタリング
Red-Green-Refactor サイクル。
Test Driven Development with pytest を拝読してのメモ書き。
unittestはクラスから書く必要があるが、pytestはfunctionで書き始めることができる。
Red-Green-Refactor サイクル。
“Test Driven Development is overrated” という記事を拝読してのメモ書き。
“TDDは過大評価されてる” と言われて残念に思ったのと同時に、TDDが都市伝説化していると感じた。(ことからこの記事にまとめたとのこと)
TDDのアイディアは Kent Beck によって作られた。
“Test Driven Development” written in 2003
“Red, Green, Refactor”
学術研究機関向けシンポジウム管理システム developed with WordPress
TDD(PHPUnit)で進めた。
当初、2ヶ国語(日本語、英語)で開発・運用していたが、複数言語でのコンテンツの更新が負担になるため英語メインに変更。必要に応じて日本語を併記。
1アカウントで複数の論文投稿(および決済)に対応。この部分でプログラムが若干複雑になり、決済のチェックも事務方での確認など手間が増えてしまう。
ただしTDD(2015版)によるテストコードがあったので、改修作業は比較的スムーズに進んだ。
MVCに関する記事を参考に、リファクタリングを進める。
やはりここでもTDDに救われる。仮にテストコードがないとすると、ここまでたどり着けていないと思う。しかもストレスなく、というよりもどちらかというとモチベーション高めでリファクタリングを進めることができるのはわりと幸せな感じ。
ただし、PayPalのAPIが開発の時期によってバージョンアップされていて、その対応(情報収集、試作)に結構な時間が取られるのがなかなかしんどい。
ライフゲーム(Conway’s Game of Life)
TDD & Conway’s Game of Life by Jeremy Bytes
In software we do our practicing on the job, and that’s why we make mistakes on the job. We need to find ways of splitting the practice from the profession. We need practice sessions.
As a group, software developers don’t practice enough. Most of our learning takes place on the job, which means that most of our mistakes get made there as well. Other creative professions practice: artists carry a sketchpad, musicians play technical pieces, poets constantly rewrite works. In karate, where the aim is to learn to spar or fight, most of a student’s time is spent learning and refining basic moves. The more formal of these exercises are called kata.
イベントページ
Global Day of Coderetreat 2018 in Matsuyama
ツイートまとめ(togetter)
GDCR 2018 in Matsuyama
会場はこちら
The 3rd FLOOR
ご協力ありがとうございました。
ランチ、ドリンク、デザートは1Fのグレイズさんにお願いしました。
とても美味しかったです。ありがとうございました。
CodeRetreat は、1日かけてプログラミングのスキルアップを目指すイベントで基本的にプログラマーは無料で参加できます。会場やランチ、おやつなどにかかる費用は、スポンサーを募ってまかないます。ご賛同いただける企業の方、個人の方がいらっしゃいましたら今後のイベントへのご協力をお願いします。
ペアを組んで1日に5から6セッション行います。セッション毎に書いたコードを消します。各セッションでペアを入れ替えます。参加者は使いたいプログラミング言語の環境(テストフレームワークを含む)を各自用意して、ペアで共有します。
今回のイベントではオブジェクト指向設計を重視する方向だったので、そのあたり自分自身まだまだトレーニングが必要と感じました。
でも、セッションを重ねるたびに、とても楽しい、面白いという感想が多く聞こえて、松山で3度目の開催になりますがとても充実した良いイベントになったと思います。参加されたみなさんのおかげです。
あと、時差の関係でイベント終了後になりましたが、スペイン(Valencia)の会場とHangoutで繋いで無事バトンを渡すことができました。
今後は、年1回のGDCRとは別に、もう少しカジュアルに CodeRetreat が開催できればと思っています。興味のある方はぜひご協力をお願いします。
先日高松で開催されたTDDBCにPHPのTAとして参加しました。
事前の素振りがちょっと足りなかったみたいで、部分的にぎこちない説明になったかもしれません。m(..)m
ですが、参加者の皆さんにはとても学びの多い貴重な経験になったと思います。これをきっかけにより良いプログラミングについて取り組んでいただければと思います。
ということで(?)、TDD本を読みながらJavaでおさらいをしてみました。
確認したかったのは、コードに変更があった際のテストの自動実行(automatic rerun)。
Toggle auto-test のボタンを有効にしますが、その前に、
Preferences… -> Build, Execution, Deployment -> Compiler
を開いて「Make project automatically」にチェックを入れておきます。
先月JUnit勉強会を開催しまして、
JUnit勉強会 in 松山 – “REVIVAL” #season1
その時に仕掛ったモックをあらためて使おうとしたところ、
“java.lang.NoClassDefFoundError”
となって先に進めない状況が続いていました。
開発環境は、Googleが提供しているADT-Bundle版です。
結局、ビルドパスの設定でMockitoをライブラリに追加したのが良くなかったようです。
例えば、
の場合。
テスト対象プロジェクトが指定されていること。
ターゲットのAPIとその依存関係が指定されていること。
※ここに手作業でmockito-all-1.9.5.jarを追加するとタイトルのエラーになりました。
ビルドパスを編集するのではなくて、テストプロジェクトに libs フォルダを作成してその中に、
これらのファイルをコピーすればOKでした。