ここで何が起こっているのか理解しようとしています。変数は、しかし、変数が空で走る次のテスト// = 9 を数える_moduleInfoループ後のように、私は// asynch'dリモートコードの委任された値のフィールドを失う
// a global variable to all unit tests in the class
private List<ModuleInfo> _moduleInfo;
[TestMethod]
public void MyFunction()
{
_moduleInfo = new List<ModuleInfo>();
netCall.MessageRecieved +=
delegate(object sender, MessageTestRecievedEventArgs e)
{
// I get a correct response - array of Modules
// then try to add to global variable
foreach (EducateMe.Shared.Types.ModuleInfo mIn in arr)
{
_moduleInfo.Add(mIn);
}
}
}
をいくつかのユニットテストを書いている - それが離れたときにそれは何とかリセットされます - どうすればこの値をテスト間で保持できますか?
更新 -
これは配列の定義方法です。 [Setup]または[TearDown]は使用されていません。
2番目の単体テストは、単にループによって作成された値を読み取ろうとするものです。したがって、MyFunction()テストは正常に終了しますが、クロージャを終了すると変数はなくなります。
乾杯
ps。これは
private TestContext testContextInstance;
/// <summary>
///Gets or sets the test context which provides
///information about and functionality for the current test run.
///</summary>
public TestContext TestContext
{
get
{
return testContextInstance;
}
set
{
testContextInstance = value;
}
}
「/ arr」はどこに定義されていますか? – leppie
おそらく愚かな質問ですが、各テストは_moduleInfo = new List ...割り当てを行いますか?テストは任意の順序で実行できますので、テストではなく定義内で実行することをお勧めします。 – Massif
読んでいただきありがとうございます - 私はいくつかの更新されたコメントを追加しました。私はまた、メソッド内でないクラスでのみ変数を宣言することでこれを試みました - 同じ結果。 – MikeW