私は主に scala と java でプログラミングし、scala で scalatest を使用し、単体テストには junit を使用します。同じインターフェイス/特性のいくつかの実装にまったく同じテストを適用したいと思います。アイデアは、インターフェイス コントラクトが適用されていることを確認し、Liskov 置換原則を確認することです。
たとえば、リストの実装をテストする場合、テストには次のものが含まれます。
- サイズがゼロの場合に限り、インスタンスは空であるべきです。
- clear を呼び出した後、サイズはゼロになるはずです。
- リストの途中に要素を追加すると、rhs 要素のインデックスが 1 つ増えます。
- 等
ベストプラクティスは何ですか?