我有一个拥有数百名真实用户的 Web 应用程序。
我需要有一个具有生产状态的测试环境,因为应用程序是数据驱动的,应用程序的状态会从数据中更改,如果没有真正的用户数据存在,则无法测试事物......
但是由于它有真正的电子邮件,它在测试中的风险,因为测试电子邮件可以去真正的用户。
所以我需要一种机制来将电子邮件更改为不真实的东西,但由于电子邮件字段是唯一的,我如何通过一个查询更改所有电子邮件。
我的同事建议一封带有 +any_number ex. 的电子邮件。 rajat@gmail.com
和rajat+27@gmail.com
会将电子邮件发送到同一电子邮件。
所以我写了一个查询
update users set email = CONCAT(CONCAT('rajat+',id),'@gmail.com')
它解决了问题..现在,我可以使用生产数据测试环境。
我的问题:
1)它是如何工作的??
2)这是一个正确的方法吗?人们如何管理测试和生产环境?
我更喜欢更改代码低级别而不是更改数据库。例如:
function sendEmail($to, ...) {
if (APPLICATION_ENV != 'production') {
$to = "dev@.....";
}
// continue ...
}
这样,您始终可以确保收件人地址更改为测试地址,即使该地址来自不同的来源(如表单)。