订阅确认功能的开发与测试实践
1. 静态确认链接测试
1.1 红色测试
在这个阶段,我们的目标是从电子邮件正文中检索确认链接。我们并不关心链接是否动态或有实际意义,只需要确保邮件正文中存在类似链接的内容,并且纯文本和 HTML 版本的邮件正文中的链接相同。
为了获取 wiremock::MockServer 拦截的请求正文,我们可以使用其 received_requests 方法。该方法会返回服务器拦截的所有请求的向量,前提是启用了请求记录(默认启用)。
以下是测试代码示例:
// tests/api/subscriptions.rs
#[actix_rt::test]
async fn subscribe_sends_a_confirmation_email_with_a_ {
// Arrange
let app = spawn_app().await;
let body = "name=le%20guin&email=ursula_le_guin%4";
Mock::given(path("/email"))
.and(method("POST"))
.respond_with(ResponseTemplate::new(200))
.mount(&app.email_server)
.await;
// Act
app.post_subscriptions(body.into()).await;
超级会员免费看
订阅专栏 解锁全文
334

被折叠的 条评论
为什么被折叠?



