我写了一个 php 类来初始化 Twilio 休息客户端,并提供发送和删除消息的方法,以减少我的 ivr 中的代码。
在编写集成测试时,我想确保在凭据不正确时我可以处理异常。
但是,其余客户端不会抛出 ConfigurationException,而只是返回用户名/密码属性中具有错误凭据的客户端,因此后续调用失败。我不明白为什么这不起作用。也许我在依赖项中遗漏了一些会暴露异常的东西?
这不是我正常测试的方式,但我严格地编写了一个测试来查看我是否可以检测到异常并且测试没有检测到异常。客户端愉快地使用错误的凭据进行初始化。我似乎记得这种工作方式不同。
use Twilio\Rest\Client as TwilioClient;
......
$this->expectException(ConfigurationException::class); $testClient = new TwilioClient("bad_sid","bad_token"); $this->logger->debug("Test Client: " . print_r($testClient,true)); self::assertInstanceOf(TwilioClient::class,$testClient);
预期客户端在提供错误凭据时初始化失败。
没有失败。
所以,经过多次摸索后,我发现这是由于其余客户端不会抛出异常,除非凭据为空。
客户端愉快地使用错误的凭据进行初始化,并且仅在未提供凭据时才会抛出配置错误。提供空值后,测试通过。
这确实存在一个问题,就好像在 .env 文件中提供错误的凭据一样,在调用发送消息或通过客户端进行录音之前不会暴露任何问题。