Skip to content

Instantly share code, notes, and snippets.

@ulisseshen
Last active March 20, 2024 22:56
Show Gist options
  • Save ulisseshen/226a3b3265908d1c5888de01377eb9c2 to your computer and use it in GitHub Desktop.
Save ulisseshen/226a3b3265908d1c5888de01377eb9c2 to your computer and use it in GitHub Desktop.
Verifica se o toJson é chamado se um objeto é passado para o jsonEncode
import 'dart:convert';
void main() {
print('toJson() deve ser chamado ao usar jsonEncode()');
final produto = ProdutoSpy('Camiseta', 29.99);
print(jsonEncode(produto));
if (produto.toJsonWasCalled){
print('chamou o toJson()');
}
}
class Produto {
String nome;
double preco;
Produto(this.nome, this.preco);
Map<String, dynamic> toJson() {
return {
'nome': nome,
'preco': preco,
};
}
}
class ProdutoSpy extends Produto {
ProdutoSpy(super.nome, super.preco) ;
bool toJsonWasCalled = false;
@override
Map<String, dynamic> toJson() {
toJsonWasCalled = true;
return super.toJson();
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment