Closed iam3yal closed 11 months ago
Pretty sure it's because your test class by default inherits from ComponentBase which you don't want when using it to write tests.
Change it to inherit from Test context instead, e.g. @inherits TestContext
.
@inherits TestContext
@code {
[Fact]
public async Task Should_fire_ValueChanged_event_when_the_value_was_changed()
{
var value = "foo";
var webInput = Render<TestableWebInput<string>>(@<TestableWebInput
TValue="string"
@bind-Value="value">
</TestableWebInput>);
var element = webInput.Find("input");
var wasValueChangedFiredAfterFirstRender = value != "foo";
await element.ChangeAsync(new() { Value = "bar" });
Assert.Multiple(() => Assert.False(wasValueChangedFiredAfterFirstRender),
() => Assert.Equal("bar", webInput.Instance.Value));
}
}
@egil Thank you so much this was it! Keep up the amazing work you do. :)
p.s. I'm not sure whether this is documented but it might be worth adding a note about it.
@linkdotnet That's great but it's not SEO friendly simply because it doesn't note the exception so a person looking to resolve the problem might not find it but I guess that now that this issue exists it's sufficient. :)
That's a good point. Let's add that to the docs so folks find them when googling.
Describe the bug
Up until now I wrote my tests directly with C# and now I've decided to rewrite them using the Razor syntax but then in one of my tests I'm getting an exception.
Here is a reference to the code that fails: https://github.com/iam3yal/RazorSharp/tree/7705905cc13e45e87a7428d695d58243a47d0a9c/src/RazorSharp/Components/Forms/WebInputBase.cs#L487
Here is a reference to the test that works: https://github.com/iam3yal/RazorSharp/tree/7705905cc13e45e87a7428d695d58243a47d0a9c/src/RazorSharp.Tests/Components/Forms/WebInputBaseTests.cs#L247
Here is a link to the issue that supposedly justifies the behaviour of calling
EventCallback.InvokeAsync
synchronously: https://github.com/dotnet/aspnetcore/issues/25696So the following test works perfectly fine with no exception:
I rewrote the same test like this but then I'm getting an exception when
ValueChanged
is fired.That's what the SG generates:
Here is the stack trace:
Expected behavior: Should throw no exceptions. Version info: