使用PHPUnit测试cookie和会话,如何?

The*_*per 11 php cookies session phpunit unit-testing

使用PHPUnit,测试原始PHP代码非常容易,但是那些严重依赖于cookie的代码呢?会议可能就是一个很好的例子.

有没有一种方法不需要我$_COOKIE在测试期间设置数据?这感觉就像一种做事的hacky方式.

小智 6

这是代码的常见问题,尤其是滞后的PHP代码.使用的常用技术是进一步抽象相关对象中的COOKIE/SESSION变量,并使用控制技术的反转将这些依赖项拉入范围.

http://martinfowler.com/articles/injection.html

现在,在执行测试之前,您将实例化Cookie/Session对象的模拟版本并提供默认数据.

我想,通过在执行测试之前简单地覆盖超级全局值,可以使用遗留代码实现相同的效果.

干杯,亚历克斯