在.net中使用IRequestExecutor模拟身份验证



尝试在。net中首次编写一些集成测试-特别是针对HotChocolate。

我已经对WebApplicationFactory进行了测试,剩下的最后一部分是现在尝试模拟身份验证。我试图根据模拟身份验证设置它,但我正在使用IRequestExecutor查询数据,并找到设置它的事实上的方式实际上并不触发:
[Fact]
public async Task GetJokes()
{
var query =
@"query Jokes {
jokes(jokeLength: SMALL) {
nodes {
id
body
}
}
}";

var request = QueryRequestBuilder.New().SetQuery(query).Create();
var executor = await _factory.Services.GetRequestExecutorAsync();
var result = await executor.ExecuteAsync(request);
(await result.ToJsonAsync()).MatchSnapshot();
}

当我调试这个,我从来没有击中HandleAuthenticateAsync在我的AuthHandler的(从上面链接的模拟认证设置),所以索赔从未添加-所以看起来像那些只运行的httpClient请求-是否有一种方法来配置IRequestExecutor被认证?

可以直接将ClaimsPrincipal作为属性添加到QueryRequestBuilder

var request = QueryRequestBuilder
.New()
.SetQuery(query)
.AddProperty(nameof(ClaimsPrincipal), new ClaimsPrincipal(new ClaimsIdentity("test")))
.Create();

相关内容

  • 没有找到相关文章

最新更新