Thinkig Sphinx nie "widzi" zmiennych spoza "it" w testach

skonfigurowałem środowisko testowe wg tego tutoriala:

http://pat.github.io/thinking-sphinx/testing.html

mam wyłączone w spec helper:

config.use_transactional_fixtures = false

Napotkałem dziwny problem, jeśli zdefiniuje rekordy wewnątrz bloku it “should do something” to sphinx ładnie je znajduje, natomiast jeśli te same rekordy są zdefiniowane za pomocą let() lub w bloku before to ich nie widzi.

let w rspecu jest ładowane ‘leniwie’ - kod w bloku zostanie wykony dopiero, gdy pierwszy raz poprosisz o zmienną. Jeśli tworzysz w let rekord w bazie, to o ile nie wywołasz zmiennej, rekord nie zostanie utworzony. Zawsze wykonywany jest kod z let!. Jesteś pewien, że te z before też nie są tworzone?

Tutaj więcej o różnycy między let i let!: https://www.relishapp.com/rspec/rspec-core/docs/helper-methods/let-and-let

1 Like