okuzawatsの日記

Android / Kotlin / GitHub Actions Enthusiast 🤖

モック主義者

目次

「単体テストの考え方/使い方」 (Vladimir, (2022)) を読んでいて驚いたことのひとつが、「モック主義者」という概念でした。自分もモック主義者の持つ信条を持っていたので、知らない間に何らかの派閥に入ってしまっていたことに気付いたためです。

モック主義者とは、単体テストに関する2つの派閥、古典学派とロンドン学派のうち、ロンドン学派に属するプログラマーを指します。これらの学派はユニットテストにおいて「何を隔離するのか?」という点について考えを異にするグループです。

ロンドン学派は、テスト対象システムから協力者オブジェクトを隔離し、すべての依存をテストダブルに置き換えます。一方で古典学派は、テストケースが互いに影響しないよう、テストケースを隔離します。テストダブルも使用しますが、使い方はロンドン学派と比べて限定的です。こちらは「デトロイト学派」とも呼ばれることがあります (Tom, (2023)) 。

「Good Code, Bad Code 持続可能な開発のためのソフトウェアエンジニア的思考」 (Tom, (2023)) では、古典学派とロンドン学派の特徴を以下のように示しています。

自分は、単体テストはテスト対象となるクラスをその依存先から隔離すべきであると考えており、基本的にすべての依存をテストダブルに置き換えることを目指していました。いつ・どこでこの考え方を持ったのかは思い出せませんが、知らない間にロンドン学派の考え方をしていたようです。

「単体テストの考え方/使い方」を読んで、それとは異なる考え方があるということを学ぶことができ、視野を広げることができたのは僥倖でした。今後、単体テストに関する考え方をアップデートしていきたいと思います。

References

#Test

書いている人 😎

profile

茨城県つくば市在住のモバイルアプリケーションアーキテクト(Androidが得意です)。モバイルアプリのアーキテクチャ、自動テスト、CI/CDに興味があります。いわゆる「レガシーコード」のリファクタリング・リアーキテクチャが好きです。

👉 もっと詳しく

著書 ✍

ソフトウェアデザイン 2023年6月号📚

特集「クリーンアーキテクチャとは何か?」の第5章「モバイルアプリ開発における実践」を執筆しました。

販売サイトへ🏃

Android クリーンアーキテクチャ ヒッチハイク・ガイド🧳

Androidアプリでのクリーンアーキテクチャに入門するためのガイダンスです。クリーンアーキテクチャの概念を理解し、Androidアプリに適用する方法を解説しています。

販売サイトへ🏃

Android ユニットテスト ヒッチハイク・ガイド🧳

Androidアプリのユニットテストに入門するためのガイダンスです。初学者が混乱せずにAndroidアプリのユニットテストを書き始めることができる、ということを目的としています。

販売サイトへ🏃

Android MVVMアーキテクチャ入門🛠

Androidアプリ開発の初学者に向けた、MVVM(Model-View-ViewModel)アーキテクチャの入門書を書きました。初学者の方を確実にネクストレベルに引き上げる技術書です。NextPublishingより出版されています。

販売サイトへ🏃

関連記事 👀

お問い合わせ✉️

Androidアプリ開発、特にレガシープロジェクトに関するご相談はこちらまで📨

お名前

メールアドレス

お問い合わせ内容