[Junit] Mock, Mockito
Mock
Mockはテストデュプレクスとも呼ばれ、実際に使用する必要があるオブジェクトの帯域幅を指す.
Mockオブジェクトはターゲットの動作を検証するために使用されるため、オブジェクトが持つべき基本情報を持つ必要があります.テストが必要なオブジェクトを検証する必要がある場合は、そのオブジェクトが持っている情報を事前に持つ必要があります.
Mockオブジェクトを直接作成すると、クラスを1つずつ作成するのは難しいです.そこで、Mockitoという名前のライブラリを使用します.
Mockitoとは?
ユニットテスト用Java Mocking Framework.
また、MockitoはJunit上で動作し、MockingとVerificationを支援するFrameworkです.
依存項目の追加
build.gradleに追加:testImplementation org.mockito.mockito-all:1.9.5
記入して構築し、mockitoライブラリを追加して使用できます.
個人的な見解.
Mockitoとifの意味はあまり違わないと思います.
だから、もしXXXがあるならば、私にXXXを代入させる感じがあって、コードを书いた后にとても理解しやすいです.
管理者のリポジトリPersonRepositoryがあるとします.
PersonRepository.javapublic interface PersonRepository extends JpaRepository<Person, Long> {
List<Person> findByName(String name);
}
PersonServiceTest.java
ここで言ったことがあれば、方法でコードを書いてみます.@ExtendWith(MockitoExtension.class)
class PersonServiceTest {
@Mock
private PersonRepository personRepository;
@Test
void getPeopleByName(){
when(personRepository.findByName("lsj")) // 만약 lsj라는 이름이 있다면 가정
.thenReturn(Lists.newArrayList(new Person("lsj"))); //이 객체를 돌려줘
List<Person> result = personService.getPeopleByName("lsj");
assertThat(result.size()).isEqualTo(1);
assertThat(result.get(0)).isEqualTo("lsj");
}
}
このように存在する場合は,返すことを要求するようにコードを行う.
オブジェクトが返された場合は、assertThatを使用して検証し、sizeが1であり、私が要求したlsj
という文字列名の値が含まれているかどうかを確認します.
今では簡単なMockとMockitoしか議論されていませんが、次回のPostingではMockMvcに関するpostingをアップロードします.
Reference
この問題について([Junit] Mock, Mockito), 我々は、より多くの情報をここで見つけました
https://velog.io/@lsj8367/Junit-Mock-Mockito
テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol
ユニットテスト用Java Mocking Framework.
また、MockitoはJunit上で動作し、MockingとVerificationを支援するFrameworkです.
依存項目の追加
build.gradleに追加:
testImplementation org.mockito.mockito-all:1.9.5
記入して構築し、mockitoライブラリを追加して使用できます.個人的な見解.
Mockitoとifの意味はあまり違わないと思います.
だから、もしXXXがあるならば、私にXXXを代入させる感じがあって、コードを书いた后にとても理解しやすいです.
管理者のリポジトリPersonRepositoryがあるとします.
PersonRepository.java
public interface PersonRepository extends JpaRepository<Person, Long> {
List<Person> findByName(String name);
}
PersonServiceTest.javaここで言ったことがあれば、方法でコードを書いてみます.
@ExtendWith(MockitoExtension.class)
class PersonServiceTest {
@Mock
private PersonRepository personRepository;
@Test
void getPeopleByName(){
when(personRepository.findByName("lsj")) // 만약 lsj라는 이름이 있다면 가정
.thenReturn(Lists.newArrayList(new Person("lsj"))); //이 객체를 돌려줘
List<Person> result = personService.getPeopleByName("lsj");
assertThat(result.size()).isEqualTo(1);
assertThat(result.get(0)).isEqualTo("lsj");
}
}
このように存在する場合は,返すことを要求するようにコードを行う.オブジェクトが返された場合は、assertThatを使用して検証し、sizeが1であり、私が要求した
lsj
という文字列名の値が含まれているかどうかを確認します.今では簡単なMockとMockitoしか議論されていませんが、次回のPostingではMockMvcに関するpostingをアップロードします.
Reference
この問題について([Junit] Mock, Mockito), 我々は、より多くの情報をここで見つけました https://velog.io/@lsj8367/Junit-Mock-Mockitoテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol