首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHPUnit测试:写入Memcached /从Memcached检索时出现问题

PHPUnit测试:写入Memcached /从Memcached检索时出现问题
EN

Stack Overflow用户
提问于 2021-11-15 14:01:07
回答 1查看 57关注 0票数 0

我使用的是Laravel版本6.20.31,在我的PHPUnit测试中,我不能使用Memcached存储或检索数据。

我在phpunit.xml中将CACHE_DRIVER更新为"memcached“的值:

代码语言:javascript
复制
...snip...
    <php>
        <env name="APP_ENV" value="testing"/>
        <env name="CACHE_DRIVER" value="memcached"/>
        <env name="SESSION_DRIVER" value="array"/>
        <env name="QUEUE_DRIVER" value="sync"/>
    <php>

在我的PHPUnit测试中:

代码语言:javascript
复制
Cache::store('memcached')->put('foo', 'bar');
\Log::debug(cache()->getMemcached()->getAllKeys()); // should return an array with all keys stored in Memcached but array is empty

在PHPUnit测试中不能使用Memcached吗?或者我必须正确地配置它?

更新:

dd(config('cache.stores.memcached')返回

代码语言:javascript
复制
.^ array:5 [
  "driver" => "memcached"
  "persistent_id" => "bbsip"
  "sasl" => array:2 [
    0 => null
    1 => null
  ]
  "options" => []
  "servers" => array:1 [
    0 => array:3 [
      "host" => "127.0.0.1"
      "port" => "11211"
      "weight" => 100
    ]
  ]
]

我的config/cache.php

代码语言:javascript
复制
...snip...
        'memcached' => [
            'driver' => 'memcached',
            'persistent_id' => env('MEMCACHED_PERSISTENT_ID'),
            'sasl' => [
                env('MEMCACHED_USERNAME'),
                env('MEMCACHED_PASSWORD'),
            ],
            'options' => [
                // Memcached::OPT_CONNECT_TIMEOUT  => 2000,
            ],
            'servers' => [
                [
                    'host' => env('MEMCACHED_HOST', '127.0.0.1'),
                    'port' => env('MEMCACHED_PORT', 11211),
                    'weight' => 100,
                ],
            ],
        ],

更新2:我特别想在PHPUnit中使用Memcached,因为测试应该涵盖在Memcached中存储数据的特性(在应用程序中Memcached工作得很好)。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-11-22 09:53:41

出于某种原因,使用cache-helper

代码语言:javascript
复制
cache()->getMemcached()->getAllKeys();

返回空数组,但返回如下静态方法

代码语言:javascript
复制
Cache::store('memcached')->get('foo'));

按预期工作,并返回键'foo‘的值。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69975613

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档