If there are some possible points of failure in your preconditions, is it a bad practice to put in asserts in your Given steps, or if that is unclear, should Given statements ever fail?
Each test case should have a specific objective that is closely dependent on preconditions.
In order to accurately assert that the test has passed i would recommend including the precondition as a assertion. Failure would indicate that the setup failed, not that the functionality failed. Additional if you need to test how the functionality behaves when a precondition is missing, create a separate test.