我对一些发送 SMS 消息的代码进行了集成测试。
测试发送初始消息,例如“Hello, world”,并使用 VCR 验证对外部 SMS 提供商的调用是通过 HTTP API 进行的。
然后测试模拟通过控制器发送对 SMS 消息的回复。
收到无法辨认的回复后,代码将发送一条消息,例如“抱歉。不计算”。然后重新发送“Hello, world”。
测试寻找发送“Sorry...”的调用,然后寻找重新发送“Hello, world”的调用。
但是,似乎代码没有重新发送第二个“Hello, world”,但测试认为它是,因为第二个expect a_request
没有失败。
我正在使用自定义match_requests_on: [:uri, :method]
来匹配method
and uri
。由于第一个“Hello, world”和第二个基本相同,这条规则是否会产生我的误报?我关闭了重复,所以我希望两个单独的请求必须在磁带中,否则测试会失败。
我错过了什么?