Skip to Content
イベント駆動マイクロサービスを構築する
book

イベント駆動マイクロサービスを構築する

by Adam Bellemare
March 2025
Beginner to intermediate
324 pages
4h 49m
Japanese
O'Reilly Media, Inc.
Content preview from イベント駆動マイクロサービスを構築する

第15章. イベント駆動マイクロサービスをテストする

この作品はAIを使って翻訳されている。ご意見、ご感想をお待ちしている:translation-feedback@oreilly.com

イベント駆動マイクロサービスをテストすることの素晴らしい点の1つは、非常にモジュール化されていることだ。サービスへの入力は、イベント・ストリームまたはリクエスト/レスポンスAPIからのリクエストによって提供される。ステートは独自の独立したステート・ストアにマテリアライズされ、出力イベントはサービスの出力ストリームに書き込まれる。マイクロサービスは小規模で目的に応じて構築されるため、大規模で複雑なサービスよりもテストがはるかに容易だ。可動部分が少なく、I/Oとステートを扱う比較的標準的な方法論があり、他のマイクロサービスではテストツールを再利用する機会が多い。この章では、単体テスト、統合テスト、パフォーマンステストを含む、テストの原則と戦略をカバーする。

一般化テストの原則

イベント駆動型マイクロサービスは、すべてのアプリケーションに共通するテストのベストプラクティスを共有する。単体テスト、統合テスト、システムテスト、リグレッションテストなどの機能テストは、マイクロサービスが想定されたことを実行し、すべきでないことを実行しないことを保証する。パフォーマンステスト、負荷テスト、ストレステスト、リカバリーテストなどの非機能テストは、さまざまな環境シナリオのもとで、マイクロサービスが期待通りに動作することを保証する。

さて、これ以上先に進む前に、この章はテストの原理やハウツーに関する、より広範な著作に付随するものであることに注意することが重要である。結局のところ、多くの書籍、ブログ、ドキュメントがテストについて書かれており、私はそれらと同程度にテストを網羅することはできない。この章では、主にイベントドリブンに特化したテストの方法論と原則、そしてそれらがどのようにテス トの全体像に統合されるかを見ていく。言語固有のテストフレームワークやテストのベストプラクティスについては、この章を補完するために、各自 の情報源を参照されたい。

トポロジー関数の単体テスト

単体テストは、アプリケーションの中で最も小さなコードの断片をテストし、それらが期待通りに動作する ことを保証するために使用される。これらの小さな単体テストは、アプリケーションのより高い機能をテストするために、より大きな、より包括的な テストを記述するための基礎を提供する。イベント駆動型トポロジは、しばしばイベントに変換、集約、マッピング、リダクション関数を適用し、これらの関数を単体テ ストの理想的な候補とする。

チップ

各関数について、ヌル値や最大値などの境界条件を必ずテストすること。

ステートレス関数

ステートレス関数は、以前の関数呼び出しからの永続的な状態を必要としないので、独立したテストが非常に容易である。次のコードは、Map-Reduceスタイルのフレームワークで見られるようなEDMトポロジーの例を示している:

myInputStream
    .filter(myFilterFunction)
    .map(myMapFunction)
    .to(outputStream)

myMapFunction と は独立した関数であり、どちらも状態を保持しない。各関数は単体テストを行い、想定される入力データの範囲、特にコーナーケースを正しく処理できることを確認する必要がある。myFilterFunction

ステートフル関数 ...

Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.

Read now

Unlock full access

More than 5,000 organizations count on O’Reilly

AirBnbBlueOriginElectronic ArtsHomeDepotNasdaqRakutenTata Consultancy Services

QuotationMarkO’Reilly covers everything we've got, with content to help us build a world-class technology community, upgrade the capabilities and competencies of our teams, and improve overall team performance as well as their engagement.
Julian F.
Head of Cybersecurity
QuotationMarkI wanted to learn C and C++, but it didn't click for me until I picked up an O'Reilly book. When I went on the O’Reilly platform, I was astonished to find all the books there, plus live events and sandboxes so you could play around with the technology.
Addison B.
Field Engineer
QuotationMarkI’ve been on the O’Reilly platform for more than eight years. I use a couple of learning platforms, but I'm on O'Reilly more than anybody else. When you're there, you start learning. I'm never disappointed.
Amir M.
Data Platform Tech Lead
QuotationMarkI'm always learning. So when I got on to O'Reilly, I was like a kid in a candy store. There are playlists. There are answers. There's on-demand training. It's worth its weight in gold, in terms of what it allows me to do.
Mark W.
Embedded Software Engineer

You might also like

マイクロサービスの成功を可能にする

マイクロサービスの成功を可能にする

Sarah Wells
マイクロサービスアーキテクチャ 第2版

マイクロサービスアーキテクチャ 第2版

Sam Newman, 佐藤 直生, 木下 哲也

Publisher Resources

ISBN: 9798341625228