ソフトウェア開発の継続的な発展に伴い、テストの重要性がますます高まっています。アジャイル開発では、テストは重要なリンクです。テストは単体テストと結合テストの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 サイトの他の関連記事を参照してください。