c2a-core icon indicating copy to clipboard operation
c2a-core copied to clipboard

pytest のポリシーを考える

Open meltingrabbit opened this issue 1 year ago • 6 comments

概要

pytest のポリシーを考える

詳細

どういう思想,仮定で書くかをかんがえる

close条件

考えて,ドキュメントにしたら

meltingrabbit avatar May 24 '23 04:05 meltingrabbit

Draft

仮定

テスト全体スタート時

  • 起動直後の状態からスタートする

1 pytest スタート時

  • テスト全体は,起動直後の状態を仮定するが,その状態であることのアサーションは,冒頭で行う
    • 例:
      • 電源がOFFであること
      • 機能AがStop状態であること
      • など
  • これをいれないと,そもそもテストをすべき状態であることの保証や,前段の pytest が現在の pytest に悪影響を与えていないかのチェックができない

1 pytest 終了時

  • できるだけ pytest 開始時の状態を復元する(がmustでなはい)
  • 後続の pytest に悪影響のある状態は困るので,それは必ず復元する

meltingrabbit avatar May 24 '23 04:05 meltingrabbit

FYI @sksat @chutaro pytestのポリシー考えてます.

meltingrabbit avatar May 24 '23 05:05 meltingrabbit

一連の pytest が一つの C2A のインスタンスを使い回していること自体をどうにかしたくはありつつ,一旦現状はそうなのでよいと思う

sksat avatar May 24 '23 06:05 sksat

それはそれとして,依存関係を持ったテストを書きたくなることもあったりはしないんだろうか,というのは気になる.あっても良いとは思っていて,その上である場合は命名などでのなんらかの明示をしたい,みたいな気持ち

sksat avatar May 24 '23 06:05 sksat

依存関係を持ったテストを書きたくなることもあったりはしないんだろうか

それって 1 pytest にまとめるべき?(多分今そうなってる)

meltingrabbit avatar May 24 '23 06:05 meltingrabbit

まあそうか.少なくとも登場人物が1つの SILS な C2A だけならあくまで unit test に徹するべきだな.たぶんあるとうれしいかもしれないのは共通化した処理を切った上で「途中のここで落ちました~」みたいなやつで,別にそれはこまめに assert 書けばいいだけか.

sksat avatar May 24 '23 06:05 sksat