我想运行一个Dart测试,该测试用一组输入和预期输出重复,类似于JUnit的测试.
我编写了以下测试以实现类似的行为,但问题是,如果所有测试输出计算不正确,则测试只会失败一次:
import 'package:test/test.dart';
void main() {
test('formatDay should format dates correctly', () async {
var inputsToExpected = {
DateTime(2018, 11, 01): "Thu 1",
...
DateTime(2018, 11, 07): "Wed 7",
DateTime(2018, 11, 30): "Fri 30",
};
// When
var inputsToResults = inputsToExpected.map((input, expected) =>
MapEntry(input, formatDay(input))
);
// Then
inputsToExpected.forEach((input, expected) {
expect(inputsToResults[input], equals(expected));
});
});
}
我想使用参数化测试的原因是,我可以在测试中实现以下行为:
- 仅写入一个测试
- 测试
n
种不同的输入/输出 - 如果
n
个测试全部失败,则失败n
次