No tienes acceso a esta clase

隆Contin煤a aprendiendo! 脷nete y comienza a potenciar tu carrera

Listar y mostrar Post: pruebas

11/33
Recursos

Aportes 16

Preguntas 8

Ordenar por:

驴Quieres ver m谩s aportes, preguntas y respuestas de la comunidad?

Realmente para mi ha sido dif铆cil seguir el curso porque no siento que haya una explicaci贸n clara de porqu茅 se debe hacer cada cosa, si uno est谩 empezando en este mundo hay momentos en los que se siente perdido y/o estancado en el tema.
Es mi opini贸n, tal vez solo me pase a mi.

Yo creo que en el FactoryBot de post podrias haber usado:

[false, true].sample

en vez de el if que hiciste, es mas legible y menos redundante.

Para evitar el problema con los posts que tienen user_id en nil en FactoryBot 5, solo se tiene que agregar FactoryBot.use_parent_strategy = false
al principio del archivo de posts.rb

https://github.com/thoughtbot/factory_bot/blob/master/GETTING_STARTED.md#associations

Para quien instal贸 las gemas sin el versionamiento (like me), por alguna raz贸n el FactoryBot de 煤ltima versi贸n al hacer FactoryBot.build(:post) no genera el USER por lo que queda el post con un user_id: nil y se mantiene en valid? FALSE.

Recomiendo instalar las versiones que el profesor recomienda. O ahondar en la documentaci贸n con las versiones finales.

Cuando estamos en el ambiente de test, se podr铆a utilizar el comando 鈥渞eload!鈥 en la consola de Rails, para refrescarla y evitar salir y volver a ejecutarla?

驴Pero ese token que el proveedor le retorna a la SPA, tambi茅n se lo tiene que hacer saber a la App no es as铆? De otra forma鈥 驴el backend c贸mo se va a enterar que ese token que le est谩n enviando es valido?

Para las personas que est谩n intentando correr el comando:

FactoryBot.build(:post)

y les da el siguiente error:

gems/i18n-1.12.0/lib/i18n.rb:210:in `translate鈥: wrong number of arguments (given 2, expected 01) (ArgumentError)

Es por la versi贸n de Faker que ya es antigua y no es compatible con las versiones recientes de Rails, para actualizar Faker a la versi贸n m谩s reciente, solamente borren la versi贸n de Faker en su Gemfile, quedando de la siguiente forma:

group :test do
gem 鈥渇actory_bot_rails鈥, "~> 4.0"
gem 鈥渟houlda-matchers鈥, "~> 3.1"
gem "faker"
gem 鈥渄atabase_cleaner鈥, "~> 1.7"
end

despu茅s eliminen el archivo Gemfile.lock de su carpeta ra铆z del proyecto y vuelvan a correr el comando:

bundle install

Con esto ya les deber铆a funcionar el FactoryBot.build(:post)

me parece mas limpio usar (rails 7):

rails console -e test

en vez de :

  RAILS_ENV=test rails c 

A la hora de correr factory en el ambiente de pruebas de la consola rails, para crear post, con el comando FactoryBot.build(:post) solo crea el post, sin el user id, para que corra correctamente utilice el comando FactoryBot,create :post ,creando correctamente el post y el user id, creo que se debe a las actualizaciones que han habido de la fecha de la grabacion del curso a la actual

Hola! Sobre el refactor que se hizo a la validaci贸n de published, encontr茅 una mejor idea para testear esto, en vez de borrar la linea. Se puede usar el m茅todo validate_inclusion_of. M谩s info aqu铆

RSpec.describe Post, type: :model do
  describe 'validations' do
    it 'validates presence of required fields' do
      should validate_presence_of(:title)
      should validate_presence_of(:content)
      should validate_inclusion_of(:published).in_array([true, false])
      should validate_presence_of(:user_id)
    end
  end
end

Hasta aqu铆 llego, me he frustrado a tope. Adem谩s de ser un curso antiguo, siento que la explicaci贸n no es clara (pese a que llev茅 los cursos previos recomendados por la ruta). De tanto pausar y buscar mejores explicaciones, estoy aprendiendo m谩s incluso con Youtube, contenido totalmente gratuito y de calidad. Uno, al pagar por Platzi, espera recibir lo mejor, pero no es el caso.

tuve un error usando la version 5.0 de factorybot me salia KeyError (Factory not registered: 鈥減ost鈥)
asi que volvi a la version 4.0

Entonces como haces el test con RSpec de los boolean.

C贸mo hizo para hacer pasar el test de la lista de posts???
Probe con factorybot desde la consola crear 10 posts, pero cuando vuelvo a ejecutar rspec obtengo este error

Failure/Error: expect(payload.size).to eq(posts.size)
     
       expected: 10
            got: 0

corro bundle exec spec como en el minuto 11:25

pero no me salen errores, alguna idea?

Finished in 0.56855 seconds (files took 5.79 seconds to load)
5 examples, 0 failures

Direncia entre let y let!
NO olvidad que le es de RSpec

https://mixandgo.com/learn/let-vs-instance-variables-in-rspec