0

私は単体テストを書く初心者なので、知識不足を許してください。以前の投稿を見ましたが、まだ機能させることができません。

私は持っている

def get_bugs():
  bugs = []
  if ...:
    bugs.append(123)

  # can be empty
  return bugs

def operate(bugs):
  for bug in bugs:
    do something

def main():
  bugs = get_bugs()

  if bugs:
    operate(bugs)
    .... # other methods

-------------------------

# in my test

@mock.patch.object(myutility, "get_bugs", autospec=True, return_value=[])
def test_nobugstooperate():
   # logic to ensure myutility.operate was not called because there are no bugs

mutility.operate が呼び出されなかったテストを実装するにはどうすればよいですか? 利用できないため、「.called」を使用できません。

4

1 に答える 1

0

私の知る限り、メソッドが呼び出されていないかどうかをテストすることはできません。単体テストを行う場合は、複数のテストを記述し、それぞれがテスト対象の単体の予想される動作を 1 つテストする必要があります。あなたの場合operate、操作するバグがあるときに関数が呼び出されているかどうかを実際にテストする必要があります。バグがなければ、operate呼び出しについて心配する必要はありません。

于 2021-04-08T00:08:07.363 に答える