我对此c#代码有疑问。我可以使用selenium来跟踪最后一部分,它将数据输入到文本字段中。但是我在理解这个函数如何工作私有IEnumerable GetXlData()以及如何通过 EnterData(字符串firstName,字符串lastName)这个测试来处理valus时遇到了问题。
我可以遵循data1和data2保存第一个和第二个列的值但是如何返回并由 EnterData(字符串firstName,字符串lastName)测试使用。
namespace XYZ
{
[TestFixture]
public class readXl
{
ReadXLS xl = new ReadXLS("TestData.xls", "Sheet1");
private IEnumerable<string[]> GetXlData()
{
foreach (ExcelData e in xl.TestData)
{
string data1 = e["firstName"];
string data2 = e["lastName"];
yield return new[] { data1, data2};
}
}
[Test, TestCaseSource("GetXlData")]
public void EnterData(string firstName, string lastName)
{
driver.FindElement(By.Name("FirstName")).SendKeys(firstName);
driver.FindElement(By.Name("LastName")).SendKeys(lastName);
}
}
}
答案 0 :(得分:1)
请参阅TestCaseSource的文档。 NUnit基本上是这样做的:
foreach (var x in GetXlData())
{
EnterData(x[0], x[1]);
}
答案 1 :(得分:0)
NUnit中的TestCaseSource
属性用于所谓的数据驱动测试。该机制的工作原理如下:
string[]
,但它也可以是无类型的object
)。
此对象必须与装饰测试方法(Enterdata()
)的签名匹配。 这种数据驱动的测试对于将一堆不同的数据抛弃到单个算法非常有用,而无需一次又一次地编写相同的测试代码。