開発テスト主導(TDD)
TDD(Test Driven Development)
→その名の通り、テストを主導してプログラムを開発する方法.
従来の方法は、プログラム開発が完了した後、プログラムが正常に動作しているかどうかをテストすることです.しかし,テスト主導開発(TDD)は,プログラムを開発する際,まずテストコードを記述し,その後テストコードを通過する実際のコードを生成する.
例)
私たちが家を建てるとします.
家を建てるために、どこでどれだけのレンガを積むか、特定のエリアで線で表示し、レンガが表示された部屋に積まれるとレンガが満たされ、レンガを積むのを止めます.
TDDをここにたとえると、実際には指定された領域を「テストコード」にたとえることができ、実際にレンガを積むプロセスを「実際のコード」にたとえることができます.レンガを積むとき、レンガが突き出たり、形が合わなかったりしたら、線で判断します.
→つまり、「線」というテストコードは「煉瓦積み」という実際のコードが進む方向を示している.
レンガを積むときにレンガが少し傾いたら、また平らにしなければならない.これはリニューアルにたとえることができる.
💡 再構築は、ソースコード機能を保持した上で、ソースコード設計を改善する方法です.
TDDストリーム
TDDの一般的な流れは以下の通りです.
何をテストするかを考えます. の作成に失敗したテスト. でテストされたコードを記述します. コードを再パッケージします.(テストコードも再設計します.) 実施すべき内容があるまで、ステップを繰り返す. ここでNは「最も簡単なコードが生成されるまで」である.
JavaマスターメソッドとJUnit、AssertJの説明
1.Javaのマスターメソッド
→プログラムの起動とテスト実施のためのプログラム
mainメソッドを使用してテストする欠点クラスとmainメソッドの増加に伴い、テストの大規模なプロジェクトは複雑になります. メソッド(main)には複数のテストコードがあり、どのテストがどのように実現されているのか分かりにくい. テスト結果は、1人ずつ確認する必要があります. TDDのメリット TDDは、コードの再利用を保証することができる.したがって,ソフトウェア開発においては,機能モジュール化が徹底される.→必要に応じてモジュールを追加または削除し、ソフトウェア全体の構造に大きな影響はありません. のテストコードを最初に作成するので、開発者が実現する必要がある部分に直感的になりやすい.→テストコード作成時に様々な例外が考慮されているため、開発中にソフトウェア全体の設計が変更されることはない. TDDの場合、エラーは簡単に見つかります.→各機能のテストコードを事前に想定していたので、エラーを見つけやすい. TDDの欠点は生産性が低い.
→最初から2つのコード(テストコード、実際のコード)を書くので、中間テストの場合は を修正する
ソフトウェアをすばやく作成する必要がある場合は、実際のコードのみを作成するとより効果的です.
ソフトウェアの品質・完成度を向上させるためにTDD方式が有効である.
JUnitとAsserJ
JUnit
テストコードを使いやすいJavaライブラリ
AssertJ
様々な断言を提供するJavaライブラリ.
→テストコードの読みやすさを向上させる.(Junitが提供する方法よりも毒性が大きい)
IntelliJでTDDとグラデーションを設定(Java 11,IntelliJ)
1
JAvaはコンパイル言語です.
.javaファイルを実行するわけではありません.JAvaのコンパイル結果.classを実行させることです.
プロジェクト構造を初めて構築する場合は、IntelliJのようなIDEにあります.classファイルを含むパスを知っておく必要があります.これをclassPath設定と呼びます
2
gradeを使用する場合は、classpathの設定が良好であることを確認します.
→テストコードを実行するため.classの位置を理解します.
まずはプロジェクトのゾウ模様のビルドgradleシェイプのフォルダをクリックし、pluginにjavaが含まれていることを確認します.
gradleは、デフォルト設定を使用してbuildフォルダにコンパイルされたソース構造を作成します.
3.AssertJの追加
まず、それらを利用してassertJに参加します.
→Javaバージョンが8より大きい場合は、assertJを3.0以降に設定します.以前のバージョンは2です.Xバージョンに設定
4.TDDを味わう
1.テストフォルダの設定
Project/src/testフォルダで、緑色javaフォルダをクリックすると、テストフォルダを設定できます.
javaフォルダをtestフォルダに設定するには、次のようにします.
2.簡易計算機テストの作成
java/Calculator.Javaの作成後にコードを記述する
必要なバージョンのJUnitを設定し、テストファイルを作成します.
これでテストフォルダにCalculatorTestファイルが作成されていることがわかります.
TDDは本当に始まります
Java/Calculatorではコンストラクション関数しかありません.すなわち,計算機の実際の機能にはadd,sub,mulなどはない.
TDD方式でaddメソッドを作成します.つまり、まずテストファイルを作成し、実際のコードを作成します.
実行画面
テスト1+2が3かどうか
ししんえんざんほすう
→その名の通り、テストを主導してプログラムを開発する方法.
従来の方法は、プログラム開発が完了した後、プログラムが正常に動作しているかどうかをテストすることです.しかし,テスト主導開発(TDD)は,プログラムを開発する際,まずテストコードを記述し,その後テストコードを通過する実際のコードを生成する.
例)
私たちが家を建てるとします.
家を建てるために、どこでどれだけのレンガを積むか、特定のエリアで線で表示し、レンガが表示された部屋に積まれるとレンガが満たされ、レンガを積むのを止めます.
TDDをここにたとえると、実際には指定された領域を「テストコード」にたとえることができ、実際にレンガを積むプロセスを「実際のコード」にたとえることができます.レンガを積むとき、レンガが突き出たり、形が合わなかったりしたら、線で判断します.
→つまり、「線」というテストコードは「煉瓦積み」という実際のコードが進む方向を示している.
レンガを積むときにレンガが少し傾いたら、また平らにしなければならない.これはリニューアルにたとえることができる.
💡 再構築は、ソースコード機能を保持した上で、ソースコード設計を改善する方法です.
TDDストリーム
TDDの一般的な流れは以下の通りです.
JavaマスターメソッドとJUnit、AssertJの説明
1.Javaのマスターメソッド
→プログラムの起動とテスト実施のためのプログラム
mainメソッドを使用してテストする欠点
→最初から2つのコード(テストコード、実際のコード)を書くので、中間テストの場合は
ソフトウェアの品質・完成度を向上させるためにTDD方式が有効である.
JUnitとAsserJ
JUnit
テストコードを使いやすいJavaライブラリ
AssertJ
様々な断言を提供するJavaライブラリ.
→テストコードの読みやすさを向上させる.(Junitが提供する方法よりも毒性が大きい)
IntelliJでTDDとグラデーションを設定(Java 11,IntelliJ)
1
JAvaはコンパイル言語です.
.javaファイルを実行するわけではありません.JAvaのコンパイル結果.classを実行させることです.
プロジェクト構造を初めて構築する場合は、IntelliJのようなIDEにあります.classファイルを含むパスを知っておく必要があります.これをclassPath設定と呼びます
2
gradeを使用する場合は、classpathの設定が良好であることを確認します.
→テストコードを実行するため.classの位置を理解します.
まずはプロジェクトのゾウ模様のビルドgradleシェイプのフォルダをクリックし、pluginにjavaが含まれていることを確認します.
gradleは、デフォルト設定を使用してbuildフォルダにコンパイルされたソース構造を作成します.
3.AssertJの追加
まず、それらを利用してassertJに参加します.
→Javaバージョンが8より大きい場合は、assertJを3.0以降に設定します.以前のバージョンは2です.Xバージョンに設定
4.TDDを味わう
1.テストフォルダの設定
Project/src/testフォルダで、緑色javaフォルダをクリックすると、テストフォルダを設定できます.
javaフォルダをtestフォルダに設定するには、次のようにします.
2.簡易計算機テストの作成
java/Calculator.Javaの作成後にコードを記述する
public class Calculator {
int num1;
int num2;
public Calculator(int num1, int num2) {
this.num1 = num1;
this.num2 = num2;
}
public int add(int num1, int num2){
return num1 + num2;
}
}
ソースコードを作成し、command+shift+tの略語でテストを作成します.必要なバージョンのJUnitを設定し、テストファイルを作成します.
これでテストフォルダにCalculatorTestファイルが作成されていることがわかります.
TDDは本当に始まります
Java/Calculatorではコンストラクション関数しかありません.すなわち,計算機の実際の機能にはadd,sub,mulなどはない.
TDD方式でaddメソッドを作成します.つまり、まずテストファイルを作成し、実際のコードを作成します.
import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.api.Test;
import static org.assertj.core.api.Assertions.assertThat;
import static org.junit.jupiter.api.Assertions.*;
class CalculatorTest {
@Test
@DisplayName("add 함수를 위한 테스트 코드 입니다.")
void add() {
Calculator calculator = new Calculator(1,2);
assertThat(calculator.add(1,2)).isEqualTo(3);
}
}
ファイルを作成してテストすると、正常に動作しているかどうかを確認できます.実行画面
テスト1+2が3かどうか
ししんえんざんほすう
public class Calculator {
int num1;
int num2;
public Calculator(int num1, int num2) {
this.num1 = num1;
this.num2 = num2;
}
public int add(int num1, int num2){
return num1 + num2;
}
public int sub(int num1,int num2){
return num1 - num2;
}
public int div(int num1, int num2) {
return num1/num2;
}
public int mul(int num1, int num2) {
return num1*num2;
}
}
テストコードimport org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.api.Test;
import static org.assertj.core.api.Assertions.assertThat;
import static org.junit.jupiter.api.Assertions.*;
class CalculatorTest {
Calculator calculator = new Calculator(1,2);
@BeforeEach
void setUp() {
calculator = new Calculator(1, 2);
}
@Test
@DisplayName("add 함수를 위한 테스트 코드 입니다.")
void add() {
assertThat(calculator.add(1,2)).isEqualTo(3);
}
@Test
@DisplayName("sub 함수를 위한 테스트 코드 입니다.")
void sub() {
assertThat(calculator.sub(10,5)).isEqualTo(5);
}
@Test
@DisplayName(" div 함수를 위한 테스트 코드 입니다.")
void div() {
assertThat(calculator.div(6,2)).isEqualTo(3);
}
@Test
@DisplayName("mul 함수를 위한 테스트 코드 입니다.")
void mul() {
assertThat(calculator.mul(2,5)).isEqualTo(10);
}
}
Reference
この問題について(開発テスト主導(TDD)), 我々は、より多くの情報をここで見つけました https://velog.io/@cjh8746/테스트-주도-개발TDDテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol