を発生することをアサート?これを試してみる必要がありますか、それとももっとエレガントな方法ですか?特定のエラーは、次のコードを考える
2
A
答えて
2
あなたはこのためにpytest
を使用することができます。
import pytest
...
with pytest.raises(AssertionError):
fun('a')
fun('a')
がはAssertionErrorがを上げていない場合、これはエラーが発生します。
それとも、あなたがunittest
を使用している、とあなたがTestCase
内にある場合、あなたはassert Raises
を使用することができます。
self.assertRaises(AssertionError, fun, 'a')
他の回答を述べてきたようにまた、あなたが主張するよりraise
がエラーをINGのほうが良いでしょうFalse
。あなたはエラーが発生した場合行うと、あなたは何が悪かったのかについての詳細をユーザーに伝えるものを上げる、または独自のカスタム例外を発生させることができます:
import pytest
class AError(Exception):
pass
def fun(param):
if param == 'a':
raise AError("You passed 'a'; don't do that!")
else:
return None
with pytest.raises(AError):
fun('a')
1
はアサーションを投げる可能性がより良いアプローチです。例として:
def fun(param):
if param == 'a':
raise AssertionError('Param is equal to \'a\'.')
else:
return None
try:
fun('b')
print('Equalling \'b\' worked fine.')
fun('a')
print('This line is not printed...')
except AssertionError as err:
print('An assertion error has been raised:')
print(err)
が与える:
Equalling 'b' worked fine.
An assertion error has been raised:
Param is equal to 'a'.
+0
これを私に指摘してくれてありがとう! – Ohumeronen
関連する問題
- 1. -Wundefは、次のコードを考える
- 2. キャッシュミス&キャッシュは、次のコードを考える
- 3. ソートのプロパティ次のコードを考える
- 4. コンパイル次のコードを考える
- 5. jChart2D - 次のコードを考えるとTracePoint2D
- 6. にはどうすればボタンは、次のコードを考える
- 7. 最も簡単なGson.fromJsonの例は、次のコードを考える
- 8. 角度2タグの検証は次のコードを考える
- 9. アクセス親のメンバーは、次のコードを考える
- 10. 帆jsのロード部分図は、次のコードを考えるビュー
- 11. 次を考えるのPython
- 12. SimpleTestの次のコードを考えるのassertEqualsとPHPの種類
- 13. .NETのXmlシリアライザーオプションの属性次のコードを考える
- 14. は次第に考える
- 15. スカラ - 次のScala 2.11のコードを考える
- 16. パンダは、次のデータフレームを考えるグループバリュー
- 17. は、次のXMLを考える
- 18. は、次のJavaコードを考えてみましょうDouble.MaxValue
- 19. は、次のコードを考えてみてください
- 20. [ストリング]インターフェイス{}マップを使用して次のコードを考える
- 21. 組み立て簡単なコードは、次のコードを考えると、出力
- 22. 次のコードを考えると、動的メモリ割り当て
- 23. 次を考えるとSQL
- 24. 次を考える/機能
- 25. は、このコードを考える
- 26. は、次の例を考えボイドポインタ
- 27. 次のサンプルを考えるとAndroidの
- 28. Qtのmocのファイルは、#include "foo.hという" 次のコードを考えると
- 29. 特性は、私は次の宣言を持って考えると、スプレーJSON
- 30. 再初期化は、次を考える
をこれは私の質問は完全に罰金答えました。私は忙しかったのですぐに返信することができませんでした。どうもありがとう! – Ohumeronen