我正在尝试验证应用程序登录页面上的文本可用性。
我该怎么做?
使用以下代码,我可以验证文本是否存在,但是我必须根据每个条件打印文本,因此如果文本错误,则测试用例应该失败。
public void Readcontent()
{
using (WebClient client = new WebClient())
{
// string Test = "By logging on you can Ask the our experts your questions by email....";
string Test;
string url = "https://sampleweb.com";
string content = client.DownloadString(url);
if (content.Contains("XYZ"))
{
Console.WriteLine("Expected Text found here: ");
}
else
{
Console.WriteLine("Expected Text NOT found here: ");
}
Console.WriteLine(content);
}
StringAssert
。该类有方法Contains
:
[Test]
public void DownloadStringTest()
{
using (WebClient client = new WebClient())
{
string url = "https://sampleweb.com";
string content = client.DownloadString(url);
StringAssert.Contains("XYZ", content, "Expected Text NOT found");
}
}
StringAssert
还有 StartsWith
、EndsWith
和 AreEqualIgnoringCase
方法。
我将您的问题解释为“当 content.Contains("XYZ") 为 false 时,如何让测试失败?”。为此,您需要添加一个断言。
Assert.That(actual, Contains.Substring(expected), "Error message");
在你的代码中:
[Test]
public void Readcontent()
{
using (WebClient client = new WebClient())
{
string url = "https://sampleweb.com";
string content = client.DownloadString(url);
Assert.That(content, Contains.Substring("XYZ"), "String not found in entire page content.");
}
}
补充 @Stephen Straton 所说的,我们仅使用 Console.Writeline 进行调试(尽管不是最好的方法)。任何验证都应通过 Assert 方法和/或使用 Assert 的测试自动化框架中的自定义验证方法进行。