0

我们希望在测试比较实际值和预期值时对 MySQL 存储过程和函数运行自动化测试。

问题是,即使我们在每次测试之前运行一个夹具脚本,我们的大多数例程都可以在给定相同输入的情况下返回不同的结果——我们做了很多依赖于now. (now是用于返回当前日期时间的内置函数。)

我们如何“冻结”now测试数据库中返回的内容?

我能想到的最佳解决方案是将所有调用替换为now对自定义函数的调用。在我们的 prod 数据库中,这个自定义函数只会调用内置的now,而在我们的 dev 数据库中,它将返回一个静态日期。

有没有更简单的方法,比如SET global.CURRENT_TIME = '2015-01-01 00:00:00';

4

0 回答 0