在Blazor测试中涉及到受保护的会话存储时,可以使用以下代码示例解决该问题:
public class TestProtectedBrowserStorage : IPersistentProtectedBrowserStorage
{
private Dictionary
public ValueTask GetAsync(string key) where TItem : class
{
_dictionary.TryGetValue(key, out string value);
return new ValueTask(value as TItem);
}
public ValueTask RemoveAsync(string key)
{
_dictionary.Remove(key);
return new ValueTask();
}
public ValueTask SetAsync(string key, TItem value) where TItem : class
{
_dictionary[key] = value as string;
return new ValueTask();
}
}
public async Task DoSomethingWithProtectedSessionStorage()
{
var myData = await _protectedBrowserStorage.GetAsync
在测试中,可以如下使用TestProtectedBrowserStorage类来模拟受保护的会话存储:
[Fact]
public async Task TestProtectedSessionStorage()
{
// Arrange
var myData = new MyData { Id = 123, Name = "My Name" };
var protectedBrowserStorage = new TestProtectedBrowserStorage();
await protectedBrowserStorage.SetAsync("my-data-key", myData);
var component = RenderComponent
// Act
await component.Instance.DoSomethingWithProtectedSessionStorage();