要在C#中重置靜態變量以進行單元測試,可以使用反射來訪問和修改靜態變量的值。下面是一個示例代碼,演示如何重置靜態變量以進行單元測試:
```csharp
public class MyClass
{
public static int MyStaticVariable = 10;
}
[TestClass]
public class MyTestClass
{
[TestCleanup]
public void TestCleanup()
{
// 重置靜態變量的值
typeof(MyClass).GetField("MyStaticVariable").SetValue(null, 10);
}
[TestMethod]
public void TestMethod1()
{
// 測試靜態變量的值
Assert.AreEqual(10, MyClass.MyStaticVariable);
// 修改靜態變量的值
MyClass.MyStaticVariable = 20;
// 再次測試靜態變量的值
Assert.AreEqual(20, MyClass.MyStaticVariable);
}
}
```
在上面的示例代碼中,`TestCleanup`方法使用反射來重置`MyClass`類中的`MyStaticVariable`靜態變量的值。這樣,在每次測試方法執行完成后,靜態變量的值都會被重置為初始值,確保測試的獨立性和可靠性。