Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
686 views
in Technique[技术] by (71.8m points)

razor components - ArgumentNullException when invoking RenderComponent with Action

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

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

1 Reply

0 votes
by (71.8m points)

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)));

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...