мы все любим однодневки, они такие классные, но при этом они так недокументированы
как я могу создать однотипный код (который в настоящее время работает блестяще)?
it "deletes the user" do expect { destroy_user }.to change(User, :count).by(1) end
как я могу сделать это с помощью этого кода
Вы не можете. однострочный синтаксис определен в терминах subject, и в этом тесте он вообще не используется.Кроме того, чтобы процитировать документацию:
subject
Синтаксис с одной строкой работает только с ожиданиями неблокирования (например, expect(obj).to eq и т. Д.) И не может использоваться с ожиданиями блока (например, expect { object }).
expect(obj).to eq
expect { object }
Я думаю, ваш пример - единственный способ выполнить то, что вы хотите.
Rspec имеет однострочный синтаксис , но это только для случая, когда у вашего блока есть субъект и, кажется, не поддерживается действие, подобное destroy_user.
destroy_user