Fixed links in README.md which were resolving to a 404 error page. (#1527)

diff --git a/pkgs/test/README.md b/pkgs/test/README.md
index fd26947..aec58e0 100644
--- a/pkgs/test/README.md
+++ b/pkgs/test/README.md
@@ -29,8 +29,9 @@
 Tests are specified using the top-level [`test()`] function, and test assertions
 are made using [`expect()`]:
 
-[`test()`]: https://pub.dev/documentation/test_core/latest/test_core/test.html
-[`expect()`]: https://pub.dev/documentation/test_api/latest/test_api/expect.html
+[`test()`]: https://pub.dev/documentation/test_core/latest/test_core.scaffolding/test.html
+
+[`expect()`]: https://pub.dev/documentation/test_api/latest/expect/expect.html
 
 ```dart
 import 'package:test/test.dart';
@@ -51,7 +52,7 @@
 Tests can be grouped together using the [`group()`] function. Each group's
 description is added to the beginning of its test's descriptions.
 
-[`group()`]: https://pub.dev/documentation/test_api/latest/test_api/group.html
+[`group()`]: https://pub.dev/documentation/test_core/latest/test_core.scaffolding/group.html
 
 ```dart
 import 'package:test/test.dart';
@@ -103,6 +104,10 @@
 You can also test exceptions with the [`throwsA()`] function or a matcher
 such as [`throwsException`]:
 
+[`throwsA()`]: https://pub.dev/documentation/test_api/latest/expect/throwsA.html
+
+[`throwsFormatException`]: https://pub.dev/documentation/test_api/latest/expect/throwsFormatException-constant.html
+
 ```dart
 import 'package:test/test.dart';
 
@@ -139,8 +144,9 @@
 }
 ```
 
-[`setUp()`]: https://pub.dev/documentation/test_api/latest/test_api/setUp.html
-[`tearDown()`]: https://pub.dev/documentation/test_api/latest/test_api/tearDown.html
+[`setUp()`]: https://pub.dev/documentation/test_core/latest/test_core.scaffolding/setUp.html
+
+[`tearDown()`]: https://pub.dev/documentation/test_core/latest/test_core.scaffolding/tearDown.html
 
 ## Running Tests
 
@@ -185,6 +191,7 @@
 ```
 
 ### Shuffling Tests
+
 Test order can be shuffled with the `--test-randomize-ordering-seed` argument.
 This allows you to shuffle your tests with a specific seed (deterministic) or
 a random seed for each run. For example, consider the following test runs:
@@ -198,6 +205,7 @@
 specifying it at all, meaning the test order will remain as-is.
 
 ### Collecting Code Coverage
+
 To collect code coverage, you can run tests with the `--coverage <directory>`
 argument. The directory specified can be an absolute or relative path.
 If a directory does not exist at the path specified, a directory will be
@@ -252,6 +260,7 @@
 only supports boolean operations. The following identifiers are defined:
 
 [boolean selector syntax]: https://github.com/dart-lang/boolean_selector/blob/master/README.md
+
 [`boolean_selector`]: https://pub.dev/packages/boolean_selector
 
 * `vm`: Whether the test is running on the command-line Dart VM.
@@ -280,7 +289,7 @@
 * `windows`: Whether the test is running on Windows. This can only be `true` if
   either `vm` or `node` is true.
 
-* `mac-os`: Whether the test is running on Mac OS. This can only be `true` if
+* `mac-os`: Whether the test is running on MacOS. This can only be `true` if
   either `vm` or `node` is true.
 
 * `linux`: Whether the test is running on Linux. This can only be `true` if
@@ -309,6 +318,7 @@
 meant to be used by JavaScript code.
 
 [Node.js]: https://nodejs.org/en/
+
 [`js`]: https://pub.dev/packages/js
 
 The test runner looks for an executable named `node` (on Mac OS or Linux) or
@@ -354,7 +364,6 @@
 
 [early-handler]:https://dart.dev/guides/libraries/futures-error-handling#potential-problem-failing-to-register-error-handlers-early
 
-
 ### Future Matchers
 
 There are a number of useful functions and matchers for more advanced
@@ -362,7 +371,7 @@
 ensures that the test doesn't finish until the `Future` completes, and runs a
 matcher against that `Future`'s value.
 
-[`completion()`]: https://pub.dev/documentation/test_api/latest/test_api/completion.html
+[`completion()`]: https://pub.dev/documentation/test_api/latest/expect/completion.html
 
 ```dart
 import 'dart:async';
@@ -376,11 +385,11 @@
 }
 ```
 
-The [`throwsA()`] matcher and the various `throwsExceptionType` matchers work
+The [`throwsA()`] matcher and the various [`throwsExceptionType`] matchers work
 with both synchronous callbacks and asynchronous `Future`s. They ensure that a
 particular type of exception is thrown:
 
-[`throwsA()`]: https://pub.dev/documentation/test_api/latest/test_api/throwsA.html
+[`throwsExceptionType`]: https://pub.dev/documentation/test_api/latest/expect/throwsException-constant.html
 
 ```dart
 import 'dart:async';
@@ -468,6 +477,7 @@
 which can only have one subscriber. For example:
 
 [`async`]: https://pub.dev/packages/async
+
 [`StreamQueue`]: https://pub.dev/documentation/async/latest/async/StreamQueue-class.html
 
 ```dart
@@ -518,14 +528,23 @@
 You can also define your own custom stream matchers with [`StreamMatcher()`].
 
 [`emits()`]: https://pub.dev/documentation/test_api/latest/test_api/emits.html
+
 [`emitsError()`]: https://pub.dev/documentation/test_api/latest/test_api/emitsError.html
+
 [`emitsDone`]: https://pub.dev/documentation/test_api/latest/test_api/emitsDone.html
+
 [`mayEmit()`]: https://pub.dev/documentation/test_api/latest/test_api/mayEmit.html
+
 [`mayEmitMultiple()`]: https://pub.dev/documentation/test_api/latest/test_api/mayEmitMultiple.html
+
 [`emitsAnyOf()`]: https://pub.dev/documentation/test_api/latest/test_api/emitsAnyOf.html
+
 [`emitsInOrder()`]: https://pub.dev/documentation/test_api/latest/test_api/emitsInOrder.html
+
 [`emitsInAnyOrder()`]: https://pub.dev/documentation/test_api/latest/test_api/emitsInAnyOrder.html
+
 [`neverEmits()`]: https://pub.dev/documentation/test_api/latest/test_api/neverEmits.html
+
 [`StreamMatcher()`]: https://pub.dev/documentation/test_api/latest/test_api/StreamMatcher-class.html
 
 ## Running Tests With Custom HTML
@@ -535,7 +554,7 @@
 files have three requirements:
 
 * They must have the same name as the test, with `.dart` replaced by `.html`. You can also
-  provide a configuration path to an html file if you want it to be reused across all tests.
+  provide a configuration path to an HTML file if you want it to be reused across all tests.
   See [Providing a custom HTML template](#providing-a-custom-html-template) below.
 
 * They must contain a `link` tag with `rel="x-dart-test"` and an `href`
@@ -594,16 +613,15 @@
 </html>
 ```
 
-
 ## Configuring Tests
 
 ### Skipping Tests
 
-If a test, group, or entire suite isn't working yet and you just want it to stop
+If a test, group, or entire suite isn't working yet, and you just want it to stop
 complaining, you can mark it as "skipped". The test or tests won't be run, and,
 if you supply a reason why, that reason will be printed. In general, skipping
 tests indicates that they should run but is temporarily not working. If they're
-is fundamentally incompatible with a platform, [`@TestOn`/`testOn`][TestOn]
+fundamentally incompatible with a platform, [`@TestOn`/`testOn`][TestOn]
 should be used instead.
 
 [TestOn]: #restricting-tests-to-certain-platforms
@@ -624,7 +642,8 @@
 include it, but it's a good idea to document why the test isn't running.
 
 Groups and individual tests can be skipped by passing the `skip` parameter. This
-can be either `true` or a String describing why the test is skipped. For example:
+can be either `true` or a String describing why the test is skipped. For
+example:
 
 ```dart
 import 'package:test/test.dart';
@@ -675,7 +694,7 @@
 
     test('even slower test', () {
       // ...
-    }, timeout: Timeout.factor(2))
+    }, timeout: Timeout.factor(2));
   }, timeout: Timeout(Duration(minutes: 1)));
 }
 ```
@@ -710,7 +729,7 @@
 ```
 
 Both the annotation and the parameter take a map. The map's keys are [platform
-selectors](#platform-selector-syntax) which describe the platforms for which the
+selectors](#platform-selectors) which describe the platforms for which the
 specialized configuration applies. Its values are instances of some of the same
 annotation classes that can be used for a suite: `Skip` and `Timeout`. A value
 can also be a list of these values.
@@ -796,17 +815,17 @@
 
 The test runner does not support general purpose flags to control compilation
 such as `-D` defines or flags like `--no-sound-null-safety`. In most cases it is
-preferable to avoid writing tests that depend on the fine grained compiler
+preferable to avoid writing tests that depend on the fine-grained compiler
 configuration. For instance to choose between sound and unsound null safety,
 prefer to choose a language version for each test which has the desired behavior
 by default - choose a language version below `2.12` to disable sound null
 safety, and a language version above `2.12` to enable sound null safety. When
-fine grained configuration is unavoidable the approach varies by platform.
+fine-grained configuration is unavoidable, the approach varies by platform.
 
 Compilation for browser and node tests can be configured by passing arguments to
 `dart2js` with `--dart2js-args` options.
 
-Fine grained compilation configuration is not supported for the VM. Any
+Fine-grained compilation configuration is not supported for the VM. Any
 configuration which impacts runtime behavior for the entire VM, such as `-D`
 defines (when used for non-const values) and runtime behavior experiments, will
 influence both the test runner and the isolates spawned to run test suites.
@@ -856,9 +875,12 @@
 `spawnHybridUri()` takes a URL. They both return a [`StreamChannel`] that
 communicates with the hybrid isolate. For example:
 
-[`spawnHybridCode()`]: https://pub.dev/documentation/test_api/latest/test_api/spawnHybridCode.html
-[`spawnHybridUri()`]: https://pub.dev/documentation/test_api/latest/test_api/spawnHybridUri.html
+[`spawnHybridCode()`]: https://pub.dev/documentation/test_api/latest/test_api.scaffolding/spawnHybridCode.html
+
+[`spawnHybridUri()`]: https://pub.dev/documentation/test_api/latest/test_api.scaffolding/spawnHybridUri.html
+
 [dart:isolate]: https://api.dart.dev/stable/dart-isolate/dart-isolate-library.html
+
 [`StreamChannel`]: https://pub.dev/documentation/stream_channel/latest/stream_channel/StreamChannel-class.html
 
 ```dart