我的断言如下。
Assert.True(jsonDataLine[i].AdvertisedStartTime.Value.ToString().Equals(DateTimeOffset.Parse(sqlNodeList[i]["AdvertisedStartTime"].InnerText).UtcDateTime.ToString(), "AdvertisedStartTime didn't match Json ", jsonDataLine[i].AdvertisedStartTime.Value.ToString(), DateTimeOffset.Parse(sqlNodeList[i]["AdvertisedStartTime"].InnerText).UtcDateTime.ToString()));
并且它抛出了一个错误
方法"等于"没有重载,需要"4"参数
任何人都可以帮忙找出问题所在吗?
检查你的括号,这是固定的
Assert.True(jsonDataLine[i].AdvertisedStartTime.Value.ToString().Equals(DateTimeOffset.Parse(sqlNodeList[i]["AdvertisedStartTime"].InnerText).UtcDateTime.ToString()),
"AdvertisedStartTime didn't match Json ", jsonDataLine[i].AdvertisedStartTime.Value.ToString(),
DateTimeOffset.Parse(sqlNodeList[i]["AdvertisedStartTime"].InnerText).UtcDateTime.ToString());
您将 4 个参数发布到字符串中。Equals((,而这样的函数不存在。等于最多需要 3 个参数。
https://msdn.microsoft.com/en-us/library/system.string.equals(v=vs.110(.aspx
Assert.True(
jsonDataLine[i].AdvertisedStartTime.Value.ToString().Equals(
DateTimeOffset.Parse(sqlNodeList[i]["AdvertisedStartTime"].InnerText).UtcDateTime.ToString(),
"AdvertisedStartTime didn't match Json ",
jsonDataLine[i].AdvertisedStartTime.Value.ToString(),
DateTimeOffset.Parse(sqlNodeList[i]["AdvertisedStartTime"].InnerText).UtcDateTime.ToString()
)
);
你会感到困惑,因为这是一行巨大的代码。将其分成多行。
var lineStr = jsonDataLine[i].AdvertisedStartTime.Value.ToString();
Assert.True(
lineStr.Equals(
DateTimeOffset.Parse(sqlNodeList[i]["AdvertisedStartTime"].InnerText).UtcDateTime.ToString(), //1
"AdvertisedStartTime didn't match Json ", //2
jsonDataLine[i].AdvertisedStartTime.Value.ToString(), //3
DateTimeOffset.Parse(sqlNodeList[i]["AdvertisedStartTime"].InnerText).UtcDateTime.ToString() //4
)
);
显然,现在您正在将四个参数传递到 Equals 函数中,该函数不受支持。你真正想在这里测试什么?