You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

bUnit中DxTextBox的TextEditChange()突然失效问题排查

DevExpress DxTextBox的bUnit测试异常问题

在使用DevExpress的DxTextBox组件编写bUnit测试时,原本正常的测试代码突然失效,具体情况如下:

可正常执行的第一段测试代码

var emailTextBox = allTextBoxes.Single(x => x.Instance.InputId == "email");

emailTextBox.TextEditChange("");
button.Click();
var li = renderedComponent.Find("li.validation-message");
Assert.NotNull(li);
Assert.Equal("Your Email is required", li.InnerHtml);
Assert.Equal("", pageModel.Email);

执行失败的第二段测试代码

emailTextBox.TextEditChange("bogus");
button.Click();
li = renderedComponent.Find("li.validation-message");
Assert.NotNull(li);
Assert.Equal("The Email field is not a valid e-mail address.", li.InnerHtml);
Assert.Equal("bogus", pageModel.Email);

测试失败时的问题表现

  • 获取到的错误信息仍为空字段的提示
  • pageModel.Email值仍为""
  • 调试时emailTextBox.Text值也为""

疑问1

TextEditChange()是否不是设置DxTextBox值的正确方式?


补充说明

有时第二段测试会随机通过,但后续同类测试仍会失败。测试预期<input>值被设置后,<DataAnnotationsValidator/>和<ValidationSummary/>能正常执行。

补充说明2

添加renderedComponent.Render()后代码可正常运行:

emailTextBox.TextEditChange("bogus");
button.Click();
renderedComponent.Render();
li = renderedComponent.Find("li.validation-message");
Assert.NotNull(li);
Assert.Equal("The Email field is not a valid e-mail address.", li.InnerHtml);
Assert.Equal("bogus", pageModel.Email);

疑问2

是否需要在TextEditChange/Click后调用renderedComponent.Render()?


内容的提问来源于stack exchange,提问作者David Thielen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.06 02:22:09