*`SetsCorrectHeader`:在这个测试中,我们使用`That.IsSameSequenceAs`根据硬编码`IEnumerable<string>`来建立断言,这也存在于 SUT 的`GetLastAndFirstNamesAsCsv`方法中。在这种情况下,在我们的单元测试中使用硬编码值是可以接受的,因为我们在 SUT 测试的方法也使用硬编码`IEnumerable<string>`。
在我们的 SUT 上设置`ControllerContext`之后,我们创建一个`IPrincipal`的赝品,创建一个`GenericIdentity`,然后当我们伪造的`IPrincipal`上的`Identity`属性被调用时,返回该身份。最后一行代码配置我们的`ControllerContext`上的`User`属性。`HttpContext`财产归还我们伪造的`IPrincipal`。
最后,现在我们已经创建并配置了我们的假货,我们称之为 SUT 的`SendCustomerEmail`方法,传递给它一个电子邮件地址。
最后,现在我们已经创建并配置了我们的赝品,我们称之为 SUT 的`SendCustomerEmail`方法,传递给它一个电子邮件地址。