[解決済み] パニックが発生したことを確認するRustのユニットテストはどのように書けばよいですか?
2023-01-08 17:27:08
質問
以下のようなRust関数があります。
panic
を実行するRust関数があり、その関数がパニックになっているかどうかを検証するためのテストケースを書きたいと思っています。というテストケースしか見つかりませんでした。
assert!
と
assert_eq!
というマクロがあります。これをテストするための何らかのメカニズムがあるのでしょうか?
新しいタスクを生成して、そのタスクがパニックになるかどうかをチェックすることができました。それは意味があるのでしょうか?
を返すと
Result<T, E>
を返すのは、私の場合、適切ではありません。
のサポートを追加したいのですが
Add
をサポートしたい。
Matrix
型に追加することができます。このような追加のための理想的な構文は、次のようになります。
let m = m1 + m2 + m3;
ここで
m1
,
m2
,
m3
は全て行列である。したがって、結果型である
add
は
Matrix
. 以下のようなものは、あまりに不可解でしょう。
let m = ((m1 + m2).unwrap() + m3).unwrap()
同時に
add()
関数は、追加される2つの行列が同じ次元であることを検証する必要があります。したがって
add()
は次元が一致しない場合にパニックを起こす必要があります。 利用可能なオプションは
panic!()
.
どのように解決するのですか?
答えは
テスト
のセクションにあります。より具体的には、あなたは
#[should_panic]
という属性があります。
#[test]
#[should_panic]
fn test_invalid_matrices_multiplication() {
let m1 = Matrix::new(3, 4); // assume these are dimensions
let m2 = Matrix::new(5, 6);
m1 * m2
}
関連
-
[解決済み] プライベートメソッド、フィールド、インナークラスを持つクラスをテストするにはどうすればよいですか?
-
[解決済み] Pythonの関数が例外を投げるかどうかをテストするにはどうすればよいですか?
-
[解決済み] 例外がスローされたことを確認するためにAssertを使用するにはどうすればよいですか?
-
[解決済み] Gradleを使用して1つのユニットテストクラスのみを実行する方法
-
[解決済み] プライベートメソッドのユニットテストはどのように行うのですか?
-
[解決済み] 抽象クラスをユニットテストする方法:スタブで拡張する?
-
[解決済み] モッキングフレームワークにおけるモッキングとスパイの比較
-
[解決済み] テストが見つかりません。インストールされているテストのディスカバラーとエグゼキューター、プラットフォームとフレームワークのバージョン設定が適切であることを確認し、もう一度試してみてください。
-
[解決済み] Kotlinで期待される例外をテストする
-
[解決済み] ユニットテストがそんなに素晴らしいなら、なぜもっと多くの企業がやらないのですか?[クローズド]
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Assert.Fail()はバッドプラクティスとみなされるか?
-
[解決済み] mockitoのwhen()呼び出しはどのように動作するのですか?
-
[解決済み] モッキングとは?
-
[解決済み】Angular 2 Unit Tests。名前 'describe' が見つからない
-
[解決済み] テスト駆動開発のデメリット?[クローズド]
-
[解決済み] Spring Dataのリポジトリをテストするには?
-
[解決済み] Unit Testsでランダムデータ?
-
[解決済み] "エラー。Karma-Jasmineのユニットテストケースを書いているときに「No provider for router」というエラーが発生しました。
-
[解決済み] RSpec vs Cucumber (RSpecの話) [終了しました。]
-
[解決済み] 単体テスト?統合テスト? 回帰テスト? 受入テスト?