問題タブ [assertraises]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - assertRaises は基本例外をキャッチするだけです
を使用すると、奇妙な問題が発生しunittest.assertRaises
ます。以下のコードを実行すると、次の出力が得られます。
正しい例外が発生しますが、テストは失敗します! 私がキャッチしている場合BaseError
、テストは成功します。
どういうわけか、これは unittest がMyError
例外クラスを認識できないというスコープの問題のようです。誰かがそれを説明できますか?回避策はありますか?
クラス名でオブジェクトを動的に構築するための実装である次の Python コードをテストしています。
これはベース モジュール「bases.py」です。
これは、テストするモジュール「derived.py」です。
python - Python の assertRaises 関数の問題
次のテストを実行しようとしています
どこ
は
ここで、素数は関数であり、
しかし
ラムダ関数は、テスト後に例外をスローしません
失敗する 誰かが問題の解決策を提供できますか?
最初の投稿ではうまく説明できなかったので、もう一度問題を説明しようと思います。ソースは次のとおりです
def is_prime(number): PRIME, NOT_PRIME = not is_prime.broken, is_prime.broken if number == 2: PRIME を返す
is_prime.broken = False
クラス IsPrimeTest(unittest.TestCase):
ここにテストがあります。テストは、テストであるプログラムをテストすると言えます-テストオーバーテスト
class MetaProgrammingTest(unittest.TestCase): def test_decorator(self): from p10 import unit_converter
私は、2番目のテストを変更できません-テストよりもテストなので、式self.assertRaises(Exception、lambda:unit_test.testBasic())は変更されないままでなければなりません私の問題は、testBasic()関数が失敗したときです。 self.assertFailIf(is_prime(2)) 、self.assertfailIf は例外をスローし、unit_test.testBasic() は同じ例外を上位スコープにスローしますが、lambda:unit_test.testBasic() は例外をスローせず、チェック self.assertRaises(例外、ラムダ: unit_test.testBasic()) が失敗する
ruby - 適切なAssert_Raiseユニットテストと例外クラスの使用
Learn Ruby theHardWayの演習49に取り組んでいます
演習では、提供されている関数ごとに単体テストを作成するように求められます。私がテストしている項目の1つは、適切な例外が発生したかどうかです。assert_raise
この目的で使用することをお勧めします。
これが私がテストしているコードです:
そして、これが関数parse_verbのテストです。
テストを実行すると失敗し、次のメッセージが表示されます。
私の機能の理解に基づいてassert_raise
、このテストは合格するはずですが、私がそれを使用している方法に何か問題がありますか?
私が使用しているすべてのファイルの完全なソースコードが必要な場合は、ここから入手できます。
python - sqlalchemy コードの単体テストで assertRaises を使用しているときに結果を理解できない
sqlalchemy コードを単体テストしようとしています。
今私の単体テストで:
add_user 関数呼び出しで整合性エラーが発生した場合、このテストは成功し、例外がない場合は失敗します。しかし問題は、両方のケースでテストが成功することです。
なぜこうなった?私のコードに何か問題がありますか? または assertRaises は、私が期待しているものとは異なる動作をしますか?
最初は、try 句に except を入れており、例外はそこでのみ処理され、assertRaises は例外を取得しないため、これが起こっていると思いました。しかし、これが事実である場合、assertRaises は例外を受け取らずに失敗するはずです。
単体テストの書き方に問題がある場合は、教えてください。コーディングの習慣に単体テストを組み込むことをまだ学んでいるからです。
python - assertRaisesの使用-伝播された例外の処理
ラップされた例外をテストしているコードがあります。失敗して例外が伝播した場合、エラーメッセージとバックトレースは十分に詳細ではないと思いました。これは主に、テストに対して何が期待されているかがわからなかったためです。 、例外と期待の詳細を教えてください。
テストを調整しました(以下のサンプルコードを参照)。このタイプのアプローチが有効であるかどうか、およびPythonテストまたはモックフレームワークのいずれかがそれを直接実装できるかどうかを知りたいですか?(現在、unittestとmoxを使用しています)
この質問に対する回答の1つは、このシナリオでself.failを使用することの適切性について簡単に触れていますが、実際には詳しく説明していません。私の仮定は、テストを1つの領域に制限しようとすると、テストに失敗しても大丈夫だということです。
注:コード例を実行すると、私が見たい動作を示すために失敗するはずです。Python 2.7、Mox0.5.3を使用しています
python - unittestを使用した割り当ての失敗のテスト
私の属性の1つは、新しい値が無効な場合に例外を発生させる検証関数をセッターが呼び出すプロパティです。
これが失敗することを確認するためのテストを追加しようとしています。ただし、assertRaisesを割り当てで機能させる方法がわかりません。
assertRaisesの通常の構文には、属性/プロパティではなく、メソッドが必要です。
私が試した他の形式は無効なPythonです:
プロパティへの割り当ての失敗をテストするにはどうすればよいですか?
注:Python 2.6、私はunittestが2.7でいくつかの新機能を持っていることを知っています
python - Python 単体テスト ケースの self.assertRaises でカバーされない例外ステートメント
これは私の機能です:
テスト機能:
get_value
印刷されません:一致が見つかりません!
python - assertRaises を使用して Python でインスタンス メソッドをテストするにはどうすればよいですか?
関数またはラムダでの使用方法は理解してassertRaises
いますが、インスタンス メソッドで使用したかったのです。
たとえば、calculator
無限精度演算を行うクラスがある場合、次のようにテストを記述します。
self.calculator.add
は呼び出し可能であり['hello', 4]
、渡したい引数であるため、ただし、テストを実行すると、次の致命的なエラーが発生します。
インスタンスメソッドが呼び出されたときのように、 when is self.assertRaises
callingが最初の引数として渡されていないため、このエラーがスローされていると思います。これを修正するにはどうすればよいですか?self.calculator.add
self
python - Pythonで新しい例外を作成/実装/テストする方法は?
私は明らかに、Pythonで例外を発生させる方法についていくつかの根本的な誤解を持っています。私がやろうとしている(そして失敗している)ことの最も簡単な例を含めています。新しい例外を作成し、それが機能するかどうかを適切にテストしようとしています。
これは次のメッセージで失敗します:
それは起こりません(つまり、サンプルコードは前の例外を正しくテストします。この種のことを実現するには、何を変更する必要がありますか?
python - Python self.assertRaises
以下のような小さなコードがあります。これを正しい方法で書く方法を教えてください。ID が存在するかどうかを確認したいのですが、存在しvalue
ない場合は例外が発生します。