所以即时编写单元测试...
使用
动态填充XMLbool updateFirstName = false;
BuildPersonnelXml(updateFirstName)
然后将XML传递到系统并创建用户填充所有数据库表中的所有列。 (现在我想检查所有字段是否正在更新,所以我为每列编写一个单独的单元测试。)现在我记录特定列的值,用
更新xmlbool updateFirstName = true;
BuildPersonnelXml(updateFirstName)
并从数据库中获取新值。比较值是差异。如果是这样,则更新成功。
但是无论如何都要传入一个字符串值并将其与一个名为bool的比较,例如,当我编写一个新的测试时,我必须转到每个前一个单元测试并添加一个新的参数FALSE,这将是非常耗时......所以可以说
string boolToUpdate = "updateFirstName";
BuildPersonnelXml(boolToUpdate)
-----------------------------------------------------
BuildPersonnelXml(boolToUpdate)
{
bool boolToUpdate.ToString() = true;
//so this would be updateFirstName = true;
}
这可能吗?
更新
感谢彼得的帮助,但到目前为止我还没有解决我的问题......
Dictionary<string, bool> myVariables = new Dictionary<string, bool>();
myVariables.Add("FirstName", true);
BuildPersonnelXml2(myVariables);
然后......
public string BuildPersonnelXml2(Dictionary<string, bool> myVariables)
{
Tuple<string, bool> myResult = new Tuple(myVariables["bool"], myVariables["FirstName"]);
这是解雇 无效的表达术语bool ...我做错了什么?
第二次更新
再次,彼得,谢谢你的帮助,但我不认为你明白我的问...
我不能通过说
来收集价值观new Tuple("FirstName", myVariables["FirstName"]);
因为valueName每次都会有所不同......所以不要用
传入3个参数function 1()
bool updateFirstName = true;
BuildPersonnelXml(updateFirstName, false, false)
function 2()
bool updateSurname= true;
BuildPersonnelXml(false, updateSurname, false)
function 3()
bool updateInitials= true;
BuildPersonnelXml(false, false, updateInitials)
我试图将bool的值和bool的名称传递给
BuildPersonnelXml(boolToUpdate)
所以我可以使用提供的名称创建一个bool。 你告诉我怎么做
function 1()
Dictionary<string, bool> myVariables = new Dictionary<string, bool>();
myVariables.Add("FirstName", true);
BuildPersonnelXml(myVariables)
所以当我尝试做的时候:
public string BuildPersonnelXml2(Dictionary<string, bool> myVariables)
{
Tuple<string, bool> myResult = Tuple.Create(myVariables[0], myVariables[1]);
//then I can create the bool with the name supplied and the value
bool myResult[0].ToString() = myResult[1];
//which should be
bool FirstName = true;
这可能吗?
当我尝试这个时,它是tellling我无法将myVariables[0], myVariables[1]
中的0和1转换为字符串...我不想转换它们我想将它们用作索引?
答案 0 :(得分:0)
要像这样使用它,您可以使用switch-case
之类的:
swtich(GivenString)
{
case "updateFirstName":
updateFirstName = true;
break;
.
.
.
}
否则你应该使用我在这种情况下不推荐的反射。