我正在用 NUnit 编写我的第一个测试夹具,并且我正在使用一个外部文件来加载匹配标准。就像是:
List<string> stringList;
[TestFixtureSetUp]
public void LoadResource(){
stringList = new List<string>;
string line;
using (StreamReader file = new Streamreader("file.txt"){
while ((string line = file.ReadLine()) != null) {stringList.Add(line);}
}
}
当我第一次对单个项目进行正常测试时,StringList 已被 LoadResource 填充,并且测试运行良好:
[Test]
Public void Test0(){
string line = stringList[0];
//specialized tests here
GenericTest(line);
}
但是下面的测试在访问 stringList 时会返回 null 异常:
public IEnumerable<string> GetStrings(){
foreach (string line in stringList){
yield return line;
}
}
[Test, TestCaseSource("GetStrings")]
public void loopedTests(string line){
GenericTest(line);
}
我在这里想念什么?我假设有一些关于枚举器的东西,这意味着它们必须在创建类时包含有效的引用,但是为什么 - 以及如何最好地修复它?