ソフトウェア開発の継続的な発展に伴い、テストの重要性がますます高まっています。アジャイル開発では、テストは重要なリンクです。テストは単体テストと結合テストの2種類に分けられます。単体テストではコードの小さな独立した部分がテストされ、統合テストではシステム全体がテストされます。この記事では、Spring Boot に基づく単体テストと統合テストに焦点を当てます。
1. 単体テスト
Spring Boot フレームワークは、完全な単体テスト フレームワークを提供します。 Spring Boot Test フレームワークを使用すると、テスト ケースを簡単に作成できます。以下は簡単なテスト ケースです:
@RunWith(SpringRunner.class) @SpringBootTest public class UserServiceTest { @Autowired UserService userService; @Test public void testFindById() { User user = userService.findById(1L); Assert.assertNotNull(user); Assert.assertEquals("张三", user.getName()); } }
その中で、@RunWith
アノテーションはテスト ランナーをSpringRunner.class
として指定し、これは Spring をロードするために使用されます。 ApplicationContext コンテキスト。@SpringBootTest
ロードする Spring Boot アプリケーションを指定し、テスト用のアプリケーション コンテキストを開始します。
テスト ケースでは、@Autowired
アノテーションを使用してUserService
を自動的にアセンブルし、テストのためにfindById
メソッドを呼び出します。Assert
ステートメントを使用して、戻り値が期待どおりかどうかを判断します。
2. 統合テスト
Spring Boot は、統合テストを完了するためのさまざまなテスト方法を提供します。@SpringBootTest
アノテーションを使用して Spring Boot アプリケーションをロードし、TestRestTemplate
を使用して HTTP リクエストを送信できます。
以下は例です:
@RunWith(SpringRunner.class) @SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT) public class UserControllerTest { @Autowired private TestRestTemplate restTemplate; @Test public void testFindById() { User user = restTemplate.getForObject("/users/1", User.class); Assert.assertEquals("张三", user.getName()); } }
このうち、@SpringBootTest
のwebEnvironment
パラメータ値はWebEnvironment.RANDOM_PORT## です。 #、ランダム ポートを使用してアプリケーション コンテキストを開始することを示します。
TestRestTemplateは、HTTP リクエストの送信に使用されます。テスト ケースでは、HTTP GET リクエストを
/users/1に送信し、
Assertステートメントを使用して戻り値が期待どおりかどうかを判断します。
以上がSpring Boot に基づく単体テストと統合テストの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。