レガシコードのテスト[クローズ]
-
13-11-2019 - |
質問
私はアジャイル慣行のコースを続けています、そして私は宿題を持っています。彼らが私に教えたのは、コードを変更する前に、私は信頼性を得るためにいくつかのテストを追加し、私がリファクタリング中に行動を変えないことを確認する必要があります。これは明確で理にかなっていますが、最初にいくつかのリファクタリングを行わずにコードがテストできない場合はどうなるか?
簡単な例:
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
}
.
フィットを使って受け入れ/統合テストを実行し、次の表が確認されていることを確認します。
----------------------------
| addend1 | addend2 | result |
----------------------------
| 1 | 1 | 2 |
----------------------------
| 1 | -1 | 0 |
----------------------------
| -1 | 1 | 0 |
----------------------------
| -1 | -1 | -2 |
----------------------------
.
しかし、関数doSum()
は標準出力ストリームに合計を印刷するため、テストを書くことは困難です(標準出力を傍受することを避けることを好む)。合計を返すメソッドを持つためにコードを少しリファクタリングすることをより理密にするでしょう。しかし、テストを書く前にコードを変更するために技術的に「許可されていません」、これはお勧めできません。
あなたは私にヒントを与えることができますか?どうやって進みますか?
ありがとうございました!
他のヒント
テーブル内のxとyのさまざまな値でChummation.Summation(x、y)にtest.cppファイルを書き込み、結果を検証/記録することができます。結果があなたが期待するものであることを確認してください。次に、合計クラスを編集して(test.cppから)テストをもう一度実行して、値が最初に同じであることを確認してください。
所属していません StackOverflow