use_test_throws_matchers
使用 throwsA 比對器,而不是 fail()。
此規則自 Dart 2.14 起可用。
詳細資訊
#使用 throwsA
比對器,而不是使用 try-catch 和 fail()
。
錯誤範例
dart
// sync code
try {
someSyncFunctionThatThrows();
fail('expected Error');
} on Error catch (error) {
expect(error.message, contains('some message'));
}
// async code
try {
await someAsyncFunctionThatThrows();
fail('expected Error');
} on Error catch (error) {
expect(error.message, contains('some message'));
}
正確範例
dart
// sync code
expect(
() => someSyncFunctionThatThrows(),
throwsA(isA<Error>().having((Error error) => error.message, 'message', contains('some message'))),
);
// async code
await expectLater(
() => someAsyncFunctionThatThrows(),
throwsA(isA<Error>().having((Error error) => error.message, 'message', contains('some message'))),
);
用法
#若要啟用 use_test_throws_matchers
規則,請在您的analysis_options.yaml
檔案中的 linter > rules 下方新增 use_test_throws_matchers
analysis_options.yaml
yaml
linter:
rules:
- use_test_throws_matchers
除非另有說明,否則本網站的文件反映的是 Dart 3.6.0。頁面最後更新於 2024-07-03。 檢視原始碼 或 回報問題。