@project_task* についてですが、後々のテストで値を変更することもないと思うので、before内でインスタンス変数にするのではなく、let(:project_task1) {ProjectTask.create(name:....) } とするのはどうでしょう？
rspec内では、できるだけインスタンス変数に頼らない方が良いのではないか、というのが僕の見解です。（正しいかどうかはわかりません。）
インスタンス変数を使う時は、前提条件とexpectやshouldが離れすぎている、とか、smell的な。