![](/img/trans.png)
[英]My Test always fails when I use that Xpath to search for the element in Selenium C#
[英]C# test always return true even when test fails
在运行测试之前,我已经将代码设置为如下所示:
private bool ValidateTestOne(EntityModel.MultiIndexEntities context)
{
if (context.SearchDisplayViews.Count() != expectedSdvCount)
{
Assert.Fail("Search Display View count was different from what was expected");
}
if (sdv.VirtualID != expectedSdVirtualId)
{
Assert.Fail("Search Display View virtual id was different from what was expected");
}
if (sdv.EntityType != expectedSdvEntityType)
{
Assert.Fail("Search Display View entity type was different from what was expected");
}
return true;
}
这还将返回正确的路径,告诉我测试是通过还是失败。 从那以后,在征求了一些建议之后,我更改了代码,使其如下所示:
private bool ValidateTestOne(EntityModel.MultiIndexEntites context)
{
Assert.AreEqual(expectedEntityCount, context.Entities.Count(),
"Entity Count was different from what was expected");
return true;
}
我对使用新的Assert.AreEqual
想法是,它仍然会返回true或false,这取决于它是通过还是失败。 但是现在我的测试总是返回true,因为如果测试失败或失败,我将无法解决。
所有这些都是通过在我的主要测试方法中调用以下行来确定的:
Assert.IsTrue(test4PassFail = ValidateTest("4.4"), "Test 4 ");
有没有办法我可以修改新代码以返回true或false,而不必还原到旧代码?
而不是return true;
,则可以执行Assert.AreEqual(expectedEntityCount, context.Entities.Count()");
这将是您的失败/通过。 您不需要退货。 但实际上,您一直在返回true
。
[TestClass]
public class Tests
{
[TestMethod]
private void ValidateTestOne(EntityModel.MultiIndexEntites context)
{
Assert.AreEqual(expectedEntityCount, context.Entities.Count(), "Entity Count was different from what was expected");
}
}
您需要遵循MSTest进行测试的方法。 您的类需要具有[TestClass]属性,而您的方法则需要[TestMethod]。 测试类中的方法都是无效的。 无论断言如何,您的方法都将返回true。 VS允许您添加测试项目和测试类以支持您的代码。 它将为您添加适当的属性。
[TestClass]
public class Tests
{
[TestMethod]
public void DriveInfoTest()
{
// set up
DriveUnit uut = new DriveUnit();
// run
var result = uut.GetInfo();
// verify
Assert.IsNotNull(result, "Get Info did not return an object.");
}
}
在第一个中,您总是返回true,因为这就是您将其设置为返回的内容。
您应该考虑将它们嵌套在if语句中
private bool ValidateTestOne(EntityModel.MultiIndexEntities context)
{
if (context.SearchDisplayViews.Count() != expectedSdvCount)
{
Assert.Fail(" Search Display View count was different from what was expected");
//does it return true or false?
//return true or false
} else if (sdv.VirtualID != expectedSdVirtualId){
Assert.Fail(" Search Display View virtual id was different from what was expected");
//again true or false?
} else if(sdv.EntityType != expectedSdvEntityType) {
Assert.Fail(" Search Display View entity type was different from what was expected");
//true or false?
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.