這是我第一次在C#中編寫單元測試,我正在編寫一個單元測試到別人的代碼上。所以請在回覆中表現出色。在單元測試中,我調用跟蹤器類並將電壓變量ctp.Voltagel(它是公開的)設置爲1.當我運行一個測試時,變量顯示爲空。我不確定爲什麼變量的狀態不在1。任何想法爲什麼?這是我的代碼。在tracerCtrl的構造函數中,TracerParameters tp被聲明爲私有。所以我沒有從單元測試中獲得它。我需要將其設置在TracerParameters中。當在代碼中使用單元測試變量變爲空
[TestMethod]
public void TestGetScanResultVoc()
{
TracerCtrl tracerCtrl;
TracerParameters tp;
int channel = 0;
int dataSize = 500;
int []data;
data = new int[dataSize];
int[] pyrn1Data = null;
int result = 0;
tracerCtrl = new TracerCtrl();
tp = new tracerParameters();
tp.Voltagel = 1;
tracerCtrl.processData(data, dataSize, channel);
}
的tracerCtrl代碼
public void processData(int[] data, int dataSize, int channel)
{
int i = 0;
if (channel == tp.Voltagel) //tp.Voltagel I get null
{
pyrn1Data = new int[dataSize];
pyrn1DataSize = dataSize;
for (i = 0; i < dataSize; i++)
{
pyrn1Data[i] = data[i];
}
bGotPyrn1 = true;
}
}
「traceParameters」類型的變量'tp'被傳遞到'tracerCtrl'中去了?你實例化它,但它永遠不會被傳入'processData'或你的'TracerCtrl'實例。 –
@Aaron你能給我們一些關於'TracerCtrl'的更多信息嗎?正如'tp'引用什麼,'TracerParameters'存儲在對象中的位置? – FLGMwt