test function

  1. @isTest
void test(
  1. Object description,
  2. dynamic body(), {
  3. String? testOn,
  4. Timeout? timeout,
  5. dynamic skip,
  6. dynamic tags,
  7. Map<String, dynamic>? onPlatform,
  8. int? retry,
})

Creates a new test case with the given description (converted to a string) and body.

The description will be added to the descriptions of any surrounding groups. If testOn is passed, it's parsed as a platform selector; the test will only be run on matching platforms.

If timeout is passed, it's used to modify or replace the default timeout of 30 seconds. Timeout modifications take precedence in suite-group-test order, so timeout will also modify any timeouts set on the group or suite.

If skip is a String or true, the test is skipped. If it's a String, it should explain why the test is skipped; this reason will be printed instead of running the test.

If tags is passed, it declares user-defined tags that are applied to the test. These tags can be used to select or skip the test on the command line, or to do bulk test configuration. All tags should be declared in the package configuration file. The parameter can be an Iterable of tag names, or a String representing a single tag.

If retry is passed, the test will be retried the provided number of times before being marked as a failure.

onPlatform allows tests to be configured on a platform-by-platform basis. It's a map from strings that are parsed as PlatformSelectors to annotation classes: Timeout, Skip, or lists of those. These annotations apply only on the given platforms. For example:

test('potentially slow test', () {
  // ...
}, onPlatform: {
  // This test is especially slow on Windows.
  'windows': Timeout.factor(2),
  'browser': [
    Skip('add browser support'),
    // This will be slow on browsers once it works on them.
    Timeout.factor(2)
  ]
});

If multiple platforms match, the annotations apply in order as through they were in nested groups.

Implementation

@isTest
void test(
  Object description,
  dynamic Function() body, {
  String? testOn,
  Timeout? timeout,
  dynamic skip,
  dynamic tags,
  Map<String, dynamic>? onPlatform,
  int? retry,
}) {
  _maybeConfigureTearDownForTestFile();
  _declarer.test(
    description.toString(),
    body,
    testOn: testOn,
    timeout: timeout,
    skip: skip,
    onPlatform: onPlatform,
    tags: tags,
    retry: retry,
  );
}