私は自分のコードを単体テストする際に、いくつかのtddを試してみることを含め、より良いものにしようとしています。私が持っている1つの質問は、CSVファイルを解析するオブジェクトをテストする方法です。ユニットテスト - スタブする方法/方法
class EventLog {
parse() {
// load csv file, create array of Events
}
getEvents(options) {
// depending on options, return correct set of events
}
}
class Event {}
だから最初、私は別のオプションが正しい結果を出すことを確認します私のgetEvents
メソッドのテストを書きたい...私は小さな例を挙げてみましょう。この場合、私はEvents
のセットを渡すことができるパース用のスタブを作成し、そのデータセットに対してテストを実行しますか?
第2に、解析メソッドをテストする必要があります。ファイルが存在しないとき、フォーマットが期待どおりに一致しないなどの簡単なことをテストする計画を立ててください。Events
などが作成されます。これは私が必要とするケースをカバーするいくつかのサンプルファイル.csv
を保存するだけですか?あるいは、loadCsv()
メソッドを抜き出して、より効果的にスタブするのでしょうか?
sinonスタブメソッドを使用した場合と同様に継承を使用するメリットとデメリットは何ですか? –
@TroyCosentinoは典型的にはごくわずかですが、私はそれを簡単にするために継承を好むだけです。 'extends'よりも多くのポイントを得ることはできません。クラスがより複雑な模倣を必要とする場合、または元々の動作を望まない場合は、スタブが便利です。 – ssube
素晴らしい、情報ありがとう!間違いなく、私の頭を正しい精神に惹かすのに役立ちます –