Olá! Fiquei com uma dúvida sobre o porque de usar um callback no segundo teste. No vídeo é explicado a questão de quando ocorre algum problema na validação, o Flutter deixa de fazer a mesma e por isso é necessário que a execução do construtor seja feita dentro de uma função.
class Transaction {
final double value;
final Contact contact;
final String id;
Transaction(
this.id,
this.value,
this.contact,
) : assert(value > 0);
void main(){
test('Should show error when create transaction with value less than zero', () {
expect(() => Transaction(null, 0, null), throwsAssertionError);
});
}