Behaveを使用していくつかのテストを実装し始めています。既存の単体テスト (より多くの機能テスト) の一部を置き換えたいと考えています。これらのいくつかは assertRaises を使用して、バックエンド サービスへの特定の呼び出しでエラーが発生することを確認します。Behave (または Gherkin) で同様のものを使用することは可能ですか?
次の単体テストはバックエンド サービスを呼び出しますが、ゲストがログオンしているため、管理タスク (do_admin_task) を実行できません。例外が発生するはずです。
def test_mycall(self):
service = myservice('guest', 'pwd')
self.assertRaises(NoPermission, service.do_admin_task, some_param)
機能ファイルでは、シナリオをどのように作成しますか? このような?
scenario: test guest can't do an admin task
given I log on to my service as guest / pwd
when I try to perform my admin task
then it should fail saying NoPermission
これにより、 whenステップですでに例外が発生するため、 thenステップにも到達しないと思います。
これに関して私が想像できる 1 つの方法は、これらの両方のステップを実行し、例外処理を行う特定のステップを作成することです。ただし、低レベルの呼び出しでエラーをモックしたい場合は、これらの手順の多くを書き直す必要があります。これは、最初に Behave に切り替えることで回避したいと考えていることです。
これにどのようにアプローチすればよいですか?