假设我们有一个带有Web.config的Web应用程序,如下所示:
<configuration>
<appSettings>
<add key="ClientCommunicationsBaseUrl" value="http://somehost.dev.com" />
</appSettings>
<configuration>
部署应用程序后,将在每个环境中替换值('dev')。已经为其中的某些CD工具(例如Octopus Deploy)进行了这种替换。
在任何情况下,CD工具都希望密钥已正确写入。以下将失败。
<configuration>
<appSettings>
<add key="ClientComunicationsBaseUrl" value="http://somehost.dev.com" />
</appSettings>
<configuration>
请注意,ClientComunicationsBaseUrl中只有一个'm'!
在部署之前,我们如何确保web.config中的所有密钥正确?
答案 0 :(得分:0)
您将需要在单元测试中隔离这种验证。毕竟,在开发人员处理代码时,这些类型的错误随时可能发生,并且您希望在它们发生时随时得到警告。
您可能希望包括一整套检查以下各项的测试:
我们通常将所有与配置的交互封装在一个类(通常称为RuntimeConfig
)中,该类专门负责该工作。单元测试练习该课程。如果您在接口后抽象该类,则还可以使用模拟来模拟特定设置和值的存在或不存在。