1
resposta

toEqual X toBe

Enquanto o professor digitava eu percebi que existia o método toEqual que em android usamos para comparar Strings. São escopos diferentes mas na hora eu pensei... "hummm acho que deve funcionar" bom a comparação foi feita e o resultado do teste foi o mesmo. Qual a real diferença entre o toEqual e o tobe?

1 resposta

Oi, Gabriel, tudo bem?

Os métodos toEqual e toBe tem uma semelhança para tipos primitivos: Numbers, Booleans, Strings, etc. Quando colocados dessa forma, eles tem o mesmo resultado. Por exemplo:

let a = 5
let b = 5
a ===b // true
ou

let a = 'Olá mundo'
let b = 'Olá mundo'

a === b // true

Já que no caso acima estamos tratando de tipos primitivos, então, o toEqual e toBe irão trabalhar da mesma forma.

Mas caso, tenhamos um objeto vazio:

let a = { }
let b = { }

a === b // false

O toBe não é indicado no caso acima por não ser um tipo primitivo, já que o toEqual verifica se dois objetos têm o mesmo valor. Este matcher verifica recursivamente a igualdade de todos os campos, em vez de verificar a identidade do objeto e o toEqual ele é um deep check, o que basicamente, permite que ele faça uma verificação mais profunda dos elementos, incluindo, alocação de memória.

Se ficou alguma dúvida, é só falar!