1

我有一个带有数百名真实用户的产品的 Web 应用程序..

我需要一个具有生产状态的测试环境,因为应用程序是数据驱动的,应用程序的状态会根据数据而变化,如果不存在真实的用户数据,则无法测试事物......

但是,由于它有真实的电子邮件,因此在测试中存在风险,因为测试电子邮件可以发送给真实的用户。

所以我需要一种机制来将电子邮件更改为不真实的东西,但由于电子邮件字段是独一无二的,我如何通过一个查询来更改所有这些。

我的同事建议使用 +any_number ex 发送电子邮件。rajat@gmail.com并将rajat+27@gmail.com电子邮件发送到同一电子邮件..

所以我写了一些查询

update users set email = CONCAT(CONCAT('rajat+',id),'@gmail.com')

它解决了问题..现在我可以使用生产数据在测试环境中操作..

我的问题:

1)它是如何工作的?

2)这是一个正确的方法吗?人们如何管理测试和生产环境?

4

1 回答 1

1

我更喜欢更改代码低级别而不是更改数据库。例如:

function sendEmail($to, ...) {
    if (APPLICATION_ENV != 'production') {
        $to = "dev@.....";
    }
    // continue ...
}

这样,您始终可以确保将收件人地址更改为测试地址,即使该地址来自不同的来源(例如表单)。

于 2012-06-25T17:56:16.947 回答