我编写了一段代码来检查窗口中的3个复选框,如果它们都已选中或未选中。
有没有更好的方法来写这个?
如果同时没有选中或取消选中复选框,那么做出我的IF语句的更好方法是什么?
任何建议将不胜感激。在此先感谢:)
调用代码并比较复选框值:
public void TheCheckboxesShouldBeChecked()
{
bool estCheckboxStatus = Win1.GetCheckboxstatus();
bool checkboxStatus = true;
Assert.AreEqual(checkboxStatus, estCheckboxStatus, "Checkbox values did not match the default.");
}
public void TheCheckboxesShouldBeUnChecked()
{
bool estCheckboxStatus2 = Win1.GetCheckboxstatus2();
bool checkboxStatus2 = true;
Assert.AreEqual(checkboxStatus2, estCheckboxStatus2, "Checkbox values did not match the default.");
}
检查并返回复选框值的代码:
public bool GetCheckboxstatus()
{
bool value = false;
if (ChkBx1.Checked
&& ChkBx2.Checked
&& ChkBx3.Checked)
{
value = true;
return value;
}
else
{
return value;
}
public bool GetCheckboxstatus2()
{
bool value = true;
if (ChkBx1.Checked
&& ChkBx2.Checked
&& ChkBx3.Checked)
{
value = false;
return value;
}
else
{
return value;
}
答案 0 :(得分:1)
确定是否选中所有:
return ChkBx1.Checked && ChkBx2.Checked && ChkBx3.Checked;
确定是否选中无:
return !ChkBx1.Checked && !ChkBx2.Checked && !ChkBx3.Checked;
对于任何更详细的内容 - 例如哪些被选中和未选中 - 那么逻辑自然会开始看起来有点难看。
答案 1 :(得分:0)
关于第一个问题,是的,有:
在您的测试课程中:
public void TheCheckboxesShouldBeChecked()
{
AssertCheckState(Win.AreAllCheckboxesChecked());
}
public void TheCheckboxesShouldBeUnChecked()
{
AssertCheckState(Win.AreAllCheckboxesUnchecked());
}
private void AssertCheckState(bool value)
{
Assert.AreEqual(true, actual, "Checked state does not match");
}
在Win1
课程中
public bool AreAllCheckboxesChecked
{
return (ChkBx1.Checked && ChkBx2.Checked && ChkBx3.Checked);
}
public bool AreAllCheckboxesUnchecked()
{
return (!ChkBx1.Checked && !ChkBx2.Checked && !ChkBx3.Checked);
}
关于你的第二个问题,它真的取决于你和你需要什么。例如,您可以公开封装在类属性中的各个检查状态。