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
相关产品推荐
相关产品推荐

