Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share
menu search
person
Welcome To Ask or Share your Answers For Others

Categories

I am trying to test a custom Razor component with an EventBack parameter:

@code {
  [Parameter]
  public EventCallback OnClick { get; set; }
}

I am using bUnit with xUnit to try to test EventCallback. Here's my test method:

public void TestOnClickEvent()
{
  void TestOnClick()
  {
    Assert.True(true);
  }

  IRenderedComponent<CSInput> component = 
    RenderComponent<CSInput>(
      builder => builder.Add(
        instanceOfCSInput => instanceOfCSInput.OnClick,
        TestOnClick));

  component.Find("input").Click();
}

When I tried to run the test, I get an ArgumentNullException from RenderComponent(), but I have no idea what could it be since everything is all in lambda.

question from:https://stackoverflow.com/questions/65835804/argumentnullexception-when-invoking-rendercomponent-with-action

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
698 views
Welcome To Ask or Share your Answers For Others

1 Answer

Apparently, the location function is the issue. I replace the call to the local function with another lambda and it works!

IRenderedComponent<CSInput> component = 
    RenderComponent<CSInput>(
      builder => builder.Add(
        instanceOfCSInput => instanceOfCSInput.OnClick,
        () => Assert.True(true)));

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share
...