ユニットテストを書く最初のステップは、テスト可能なコードを書くことです。この時点では、コードはあまりテスト可能ではありません。テストすることは可能ですが、ベストなテストではありません。理由を見てみましょう。
最初の理由は、すべてのコードがメイン関数にあることです。あなたは通常これを避けたい。これには複数の理由がありますが、私の意見では2つの大きな点は可読性と再利用性です。通常、あなたは物を別のクラスに入れたいと思っていますが、時間のために数学のスイッチをそれ自身の関数に置きます。
import java.util.Scanner;
//This program performs basic math operations such as :- +,-,*,/
public class Calculator
{
public static void main(String[] args)
{
double number1, number2;
String Mathoperation;
Scanner scannerObject = new Scanner(System.in);
System.out.println("Enter first number");
number1 = scannerObject. nextDouble();
System.out.println("Enter second number");
number2 = scannerObject. nextDouble();
Scanner UserInput = new Scanner(System.in);
System.out.println("\nHere are your options:");
System.out.println("\n1. Addition, 2. Subtraction, 3. Divison, 4. Multiplication");
Mathoperation = UserInput.next();
doMath(Mathoperation, number1, number2)
}
public double doMath(String Mathoperation, double number1, double number2){
switch (Mathoperation)
{
case "1":
System.out.println("Your answer is " + (number1 + number2));
break;
case "2":
System.out.println("Your answer is " + (number1 - number2));
break;
case "3":
System.out.println("Your answer is " + (number1/number2));
break;
case "4":
System.out.println("Your asnwer is " + (number1 * number2));
break;
default:
System.out.println("");
}
}
}
ここで、私たちは数学的操作を行う独自の方法を持っています。 1つの問題tho。これはそれ自身の単位ではなく、実際には加算と数学演算の間の統合です。つまり、テストするには、算術演算(加算、減算、除算、乗算)の各組み合わせと、メソッドが正しい演算子を選択するかどうかをテストする必要があります。そういうことがたくさんあり、私たちが望んでいて、とても良いテストではありません。どうすればこの問題を解決できますか?まあ、単純な、我々はさらに
import java.util.Scanner;
//This program performs basic math operations such as :- +,-,*,/
public class Calculator {
//Code for use input somewhere here
public double doMath(String Mathoperation, double number1, double number2){
switch (Mathoperation)
{
case "1":
System.out.println("Your answer is " + add(number1, number2));
break;
case "2":
System.out.println("Your answer is " + sub(number1, number2));
break;
case "3":
System.out.println("Your answer is " + div(number1, number2));
break;
case "4":
System.out.println("Your answer is " + mul(number1, number2));
break;
default:
System.out.println("");
}
}
public double add(double number1, double number2){
return number1 + number2;
}
public double sub(double number1, double number2){
return number1 - number2;
}
public double mul(double number1, double number2){
return number1 * number2;
}
public double div(double number1, double number2){
return number1/number2;
}
}
今すぐ私たちのユニットがはるかに容易に分解され、それを打破します。ここからは、add
、sub
、div
、およびmul
の機能をテストすると書いてあります。これらが正常に機能しているかどうかをテストしてください。次に、doMath
関数のテストを記述して、値が正しい操作に渡されることを確認します。このようにして、何かが失敗した場合、どこにその失敗があり、何が問題なのかを正確に知ることができます。 doMath
に問題があるか、他の数学的方法の1つが問題であるかどうかを知ることができます。また、あなたがより簡単に他のもののためにあなたの方法を再利用することができますので、勝つ、勝つ
感謝。テスト容易性のためだけに必要以上に公開しなければならないのは、常に私のジレンマです。私は通常、テストのために必要なものを公開し、テスト後にプライベートなものに変更する。 – c0der
@ s.p私はそれが助けてうれしいです。さらに明確化が必要な場合は、お気軽にお問い合わせください。投票を検討してください。 – c0der