您好我想知道我怎么能单元测试下面的方法:单元测试这些方法?
public float calcNP()
{
int rowcount = dataGridView1.Rows.Count;
int[] colB = new int[rowcount];
float[] NP = new float[rowcount];
float avgNP = 0;
for (int i = 0; i < rowcount; i++)
{
colB[i] = Convert.ToInt32(dataGridView1.Rows[i].Cells[5].Value);
}
float min = colB.Min();
float max = colB.Max();
float a = 1, b = 10;
for (int i = 0; i < rowcount; i++)
{
NP[i] = (a + (colB[i] - min) * (b - a))/(max - min);
avgNP = NP[i] + avgNP;
}
avgNP = (avgNP/rowcount) * 100;
return avgNP;
}
,并以下
public float calcIFact()
{
float ftp = calcFTP();
float NP = calcNP();
float IntFact = NP/ftp;
return IntFact;
}
这
public float calcFTP()
{
float ftp = 0;
if (chkFTP.Checked == true)
{
// ftp =(float)Convert.ToDouble(txtFTP.Text)/100;
ftp = (float)Convert.ToDouble(txtFTP.Text);
}
if (chkFTP.Checked == false)
{
int rowcount = dataGridView1.Rows.Count;
int[] colB = new int[rowcount];
for (int i = 0; i < rowcount; i++)
{
colB[i] = Convert.ToInt32(dataGridView1.Rows[i].Cells[5].Value);
}
// ftp = colB.Max()/100;
ftp = colB.Max();
}
如果有人能够给我一些例子,会很好。
基本上只需要计算
您将很难单元测试依赖于数据网格中的值的方法。将计算逻辑移到单独的方法中,将数字作为输入并且不引用数据网格,然后单元测试这些方法。 –
好的,没有多少时间来摆弄它,只需要为整个项目创建一些测试。单元测试一些图表功能有多难? – mvoase
@ user2913240编写好的单元测试需要投入时间和重构代码来支持良好的测试实践。 BJ Myers告诉你一个处理重构的好方法。当前编写的方法依赖于您想要测试的方法范围之外的状态。这使得它很难测试。单元测试就是验证对于一组特定的输入,您会收到一组特定的输出。 –