To make the tofu ricotta: In a food processor with a standard blade attachment, process together tofu, lemon juice, and 1 tablespoon olive oil until smooth. Add remaining tofu ricotta ingredients and process until smooth. This can also be done by hand using a potato masher or fork.
To make the white sauce: Heat a large skillet over medium-high heat. Once hot, add olive oil and all-purpose flour. Saute 1-2 minutes, stirring frequently, until the flour is golden. Whisk in ¼ cup soy milk to form a thick paste.
Slowly whisk in remaining soy milk. Bring to a rapid simmer over medium-high heat, then reduce to a low simmer. Sprinkle in nutritional yeast, salt, and pepper. Simmer until thickened enough to coat the back of a spoon. Remove from heat and set aside.
To make the veggies: Heat a skillet over medium-high heat. Add olive oil. Once hot, add mushrooms, shallots, and salt. Cook 6-8 minutes, or until mushrooms are softened. Add the fresh spinach, stirring until wilted. Remove from heat and set aside.
Assemble the lasagna: Spread ½ cup white sauce on the bottom of an 8x11 or similarly sized casserole dish. Add 3 no-boil lasagna noodles, or as many as needed to cover the dish. Top with ¼ cup white sauce. Make sure the noodles are fully coated in sauce.
Spread ½ cup tofu ricotta across the noodles. Top with half of the veggies. Top with ⅓ cup pesto.
Add 3 noodles. Add ¼ cup white sauce, spreading to thoroughly coat. Add ½ cup tofu ricotta and remaining vegetables. Top with ⅓ cup pesto.
Top with 3 noodles. Add remaining white sauce to thoroughly coat the noodles. Top with 1 cup vegan mozzarella.
Cover tightly with foil and bake at 375F for 20 minutes on the middle oven rack. Remove the foil and bake for another 15 minutes. The lasagna is ready when bubbling and hot throughout. Let rest at least 10 minutes before slicing. Serve garnished with additional pesto, tofu ricotta, and fresh basil.
Lasagna noodles: I use Trader Joe's brand no-boil lasagna noodles. If using another brand, add as many lasagna noodles as needed to fully cover the baking dish.
Pesto: You are most likely to find vegan pesto at a health foods store. Homemade vegan pesto can be made by blending together 2 cups basil, 2 cups spinach, ¼ cup olive oil, juice from one lemon, 2 tablespoons nutritional yeast, 3 cloves garlic, ½ teaspoon salt. You can also omit spinach and use 4 cups basil total.
Lasagna size: I make this lasagna in an 8x11 glass baking dish. It should also work in a 9x9 or similarly sized dish.
Leftovers are best kept refrigerated in a closed container for 3-4 days. Reheat individual servings in the microwave in 1-2 minutes. Reheat the entire lasagna in the oven at 350F. Cover with foil and cook for 20-25 minutes, or until heated through.