我正在使用 codeception 来覆盖 REST API 的代码。在我目前的情况下,我想测试发送请求以接收所请求资源的 ETag-Header 的行为,并在标题为“If-None-Match”的同一资源上的第二次请求中重用此 ETag 的值实现304响应码。
所以我在 Cest-File 中所做的是:
// send first request, grab etag
$I->sendGET('/myresource');
$I->seeResponseCodeIs(200);
$I->seeHttpHeader('ETag');
$eTag = $I->grabHttpHeader('ETag');
// send second request with header "If-None-Match" containing the etag
$I->haveHttpHeader('If-None-Match', $eTag);
$I->sendGET('/myresource');
$I->seeHttpHeader('ETag');
$I->seeResponseCodeIs(304);
当我执行此测试时,它在第二个请求说响应代码 200 与 304 不匹配后失败。当我使用外部工具(Firefox 的 HTTP 请求程序插件)执行相同的请求时,我得到了预期的行为。我必须做些什么才能让我的测试正常工作?我是否在代码接收方面发了一些错误信息,或者这可能是一个错误?
任何帮助表示赞赏,也许有人以前已经遇到过这种情况。在此先感谢您的帮助!