SpringBoot統合JUnit
4379 ワード
プロジェクトが大きすぎて、プロジェクト全体を直接測定するのはよくありません.一般的には、複数のユニットに切断され、単独でテストされます.つまり、ユニットテストです.
元のプロジェクトで直接テストすると、プロジェクトがめちゃくちゃになります.普通は単独でテストコードを書きます.
ユニットテストを行うには、JUnitを統合する必要があります.
(1)pom.xmlにJUnitの依存を追加
<dependency>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-starter-testartifactId>
<scope>testscope>
dependency>
スケルトン、Spring Initializrを使用してプロジェクトを作成する場合、Junitの依存を自動的にインポートすることがよくあります.pomを見てみましょう.xmlにあるかどうかは、ない場合にインポートします.
注意testに設定します.
(2)src/test/javaにユニットテストを書く
src/main/プロジェクトを書くために使用し、javaを放します.JAvaファイル、resourcesリソースファイル(ルートディレクトリ下にアプリケーション.yml、static下に静的リソース、templates下にテンプレートエンジン)を配置します.
src/test/はプロジェクトテスト、java放ユニットテスト、resources放リソースファイルを書くために使用されます.
src/main/resourcesの内容をsrc/test/resourcesにコピーし、resourcesファイルがない場合は自分で新規作成します.
ユニットテストのクラス名は一般的に元のクラス名の後にTestを付ける.
例えば私はcomを書きます.chy.mapper.UserMapperのユニットテストは、src/test/javaの下でcomを新規作成します.chy.mapper.UserMapperTest、パッケージ名が一致し、クラス名にTestが追加されます.
@RunWith(SpringRunner.class)
@SpringBootTest(classes = App.class) // class
public class UserMapperTest {
@Autowired //
private UserMapper userMapper;
@Test
public void queryUserByIdTest(){
//
User user=userMapper.queryUserById(1);
System.out.println(user);
}
}
テストするクラスをメンバー変数として作成し、@Autowired注入を使用します.
このクラスのどのメソッドを測定するかは、対応するメソッドを書いてテストし、メソッドに@Testと表記します.
メソッド名は、通常、元のメソッド名+Testです.1つのメソッドのみをテストする場合は、メソッド名を直接testと書くことが多い.
左の三角点でテストします.
いくつかの方法では、値を注入する必要があります.注入する値をメンバー変数として書き、オブジェクトを@Autowiredで注入し、基本タイプは@Valueで直接値を注入します.
テストメソッドの実行前後にいくつかの処理を行う必要がある場合は、次の手順に従います.
@Before
public void before(){
}
@Test
public void test(){
}
@After
public void after(){
}
このテストクラスのすべてのテストメソッドは、前処理、後処理を実行します.
一般的には、queryUserById()やupdateUserById()などのテストコードを保持し、対応する2つのテスト方法を書くのであり、queryUserById()を先に書いてテストするのではなく、測定が終わったらこの方法に基づいて変更し、他の方法のテストに変更するのではなく、そうではありません.
同様に、テストクラスは対応する位置で書き、単独で書き、パッケージも保持し、これらのテストを合わせるとプロジェクト全体のテストになります.