我有一些代码,我正在编写单元测试。
因此,我需要检查是否存在serviceResult.Result.LOCATION_COUNT
以及其余3个字段。我需要确保它们都不存在。 ServiceResult.Result
是动态类型。如果其中一些存在,那么我需要通过测试失败。
try
{
Assert.IsNull(serviceResult.Result.LOCATION_AMOUNT);
}
catch
{
try
{
Assert.IsNull(serviceResult.Result.OGM_AMOUNT);
}
catch
{
try
{
Assert.IsNull(serviceResult.Result.VAT_AMOUNT);
}
catch
{
try
{
Assert.IsNull(serviceResult.Result.TOTAL_AMOUNT);
}
catch
{
Assert.AreEqual(0, 0);
}
}
}
}
Assert.Fail();
此代码看起来不尴尬吗?也许我可以改善一些东西?
答案 0 :(得分:1)
使用Assert.Throws
,即特定表达式引发异常的断言,如下所示:
timeout = 60
maxtime = time.time() + timeout
result = None
while result is "SUCCESS":
try:
# connect
result = driver.find_element_by_xpath('//td[contains,"dmatarget14.hpeswlab.net"] and td[contains,"Success"]/ancestor::tr')
time.sleep(5)
except:
if time.time() > maxtime:
raise Exception