私はアジャイルプラクティスのコースに従っており、私には宿題があります。彼らが私に教えたのは、コードを変更する前に(リファクタリングや機能の追加)、リファクタリング中に動作を変更しないようにするために、テストを追加する必要があります。これははっきりしていて理にかなっていますが、最初にリファクタリングをしなくてもコードがテスト可能でない場合はどうなりますか?レガシーコードのテスト
簡単な例:
public class Summation
{
private int addend1;
private int addend2;
public Summation(int addend1, int addend2)
{
this.addend1 = addend1;
this.addend2 = addend2;
}
public int doSum()
{
System.out.println(addend1 + addend2);
}
// Getters/setters
}
私はFITを使用して受理/統合テストを実行し、次の表が確認されていることを確認したいと思います:、
----------------------------
| addend1 | addend2 | result |
----------------------------
| 1 | 1 | 2 |
----------------------------
| 1 | -1 | 0 |
----------------------------
| -1 | 1 | 0 |
----------------------------
| -1 | -1 | -2 |
----------------------------
をしかし、機能doSum()
プリント理由(標準出力を傍受することは避けることをお勧めします)。和を返すメソッドを持たせるには、コードを少しリファクタリングするほうが意味があります。しかし、テストを書く前にコードを変更することは技術的に「許可されていません」ので、これはお勧めできません。
私に何かヒントはありますか?どのように進めますか?
ありがとうございました!