Implementé una condición de que si el correo electrónico de un usuario no está confirmado, no recibe correos electrónicos. Mi lógica es, si el correo electrónico no está verificado/confirmado, devolver una instancia de ActionMailer::Base::NullMail.new .
Escribí esta prueba
if @user.verified? next else ActionMailer::Base::NullMail.new end expect(TestMailer.test_mail(expired_account)).to be_an_instance_of(ActionMailer::Base::NullMail)y el error que me sale es
expected #<ActionMailer::MessageDelivery(#<ActionMailer::Base::NullMail:0x00007fb0f2f24090>)> to be a kind of ActionMailer::Base::NullMail La pregunta es, ¿cómo puedo volver a escribir mi prueba para poder probar que si los correos electrónicos no se verifican, deberían devolver una instancia de ActionMailer::Base::NullMail.new
El error te dice cuál es el problema, ¿verdad? Espera una instancia de un objeto de tipo de correo, así que cámbielo a esto. También debería poder usar el método be_a en lugar de be_an_instance_of en Rspec ver documentos
expect(TestMailer.test_mail(expired_account).message) .to be_an(ActionMailer::Base::NullMail)