最近、ユニットテストにもっと注意を払い、良いテストを行う方法がわからない状況に陥りました。オブジェクトが正しく作成されたかどうかのテスト
私はクラスXのオブジェクトを作成して返す関数を持っています。このXクラスはフレームワークの一部ですので、実装にはあまり慣れていませんし、私の場合のように自由がありません"定期的な共同教室"(私が書いたもの)。また、いくつかの引数を渡すと、オブジェクトXが正しいパラメータに設定されているかどうかをチェックすることができず、場合によってはモックを渡すことができません。
私の質問は - このオブジェクトが適切に作成されたかどうかを確認する方法、つまり、どのパラメータがコンストラクタに渡されたかを確認する方法です。どのように私はモックを渡すときにコンストラクタが例外をスローするときに問題を避けるために?これはInputSplitを作成し、だから、
public class InputSplitCreator {
Table table;
Scan scan;
RegionLocator regionLocator;
public InputSplitCreator(Table table, Scan scan, RegionLocator regionLocator) {
this.table = table;
this.scan = scan;
this.regionLocator = regionLocator;
}
public InputSplit getInputSplit(String scanStart, String scanStop, Pair<byte[][], byte[][]> startEndKeys, int i) {
String start = Bytes.toString(startEndKeys.getFirst()[i]);
String end = Bytes.toString(startEndKeys.getSecond()[i]);
String startSalt;
if (start.length() == 0)
startSalt = "0";
else
startSalt = start.substring(0, 1);
byte[] startRowKey = Bytes.toBytes(startSalt + "-" + scanStart);
byte[] endRowKey = Bytes.toBytes(startSalt + "-" + scanStop);
TableSplit tableSplit;
try {
HRegionLocation regionLocation = regionLocator.getRegionLocation(startEndKeys.getFirst()[i]);
String hostnamePort = regionLocation.getHostnamePort();
tableSplit = new TableSplit(table.getName(), scan, startRowKey, endRowKey, hostnamePort);
} catch (IOException ex) {
throw new HBaseRetrievalException("Problem while trying to find region location for region " + i, ex);
}
return tableSplit;
}
}
:
たぶん私はここに、十分に明確ではないですが、スニペットです。この分割が正しいパラメータで作成されているかどうかを知りたい。どうやってするか?
それは本当にはっきりしていないので、あなたはおそらく、あなたが使用しているフレームワークとテストしたいと述べたフレームワークのクラスとあなたの答えを更新してください詳細については
あなたは –