显然,我一直在努力测试开发人员在我的Ourteam中构建的应用程序。
类:Apis,从用户读取连接字符串,id和错误消息。我返回值名称和资格权重的字典。因为我是测试中的新手,面临很多问题,让我的测试按预期工作。请告知在哪里我没做错。
类:
public class Apis
{
public Dictionary<String, String> getQualWeight(String sqlConStr, String inBin, Label lblResults)
{
Dictionary<String, String> qualList = new Dictionary<string, string>();
string selectSQL = "select Name,qual_weight from Qualification_type "
+ "where ID in (select Qualification_ID from Qualifications where BIN = @inBin)";
con = getConn(sqlConStr);
SqlCommand cmd = new SqlCommand(selectSQL, con);
cmd.Parameters.AddWithValue("@inBin", inBin);
SqlDataReader reader;
try
{
con.Open();
reader = cmd.ExecuteReader();
while (reader.Read())
{
qualList.Add(reader[0].ToString(), reader[1].ToString());
}
reader.Close();
return qualList;
}
catch (Exception err)
{
lblResults.Text = "error fetching qualification weight " + err.Message;
return null;
}
finally
{
con.Close();
}
}
我的测试:
[TestMethod()]
public void getQualWeightTest()
{
Api target = new Api();
string sqlConStr = "SERVER=ABC123; Database=DB; UID=id; PWD=passme;encrypt=no;enlist=false";
string inBin = "2012-52-456";
Label lblResults = null;
lblResults.Text = " Failed";
Dictionary<string, string> expected = new Dictionary<string,string>();
expected.Add("Gohn", "50");
Dictionary<string, string> actual;
actual = target.getQualWeight(sqlConStr, inBin, lblResults);
Assert.AreEqual(expected, actual);
}
答案 0 :(得分:2)
只是看看你的代码,我有几点建议。
我找到了一个很好的指标,表明你的代码是如何分离的,它是多么容易测试。如果您在测试代码时遇到困难,那么它可能是重构的候选者。