如何比较一个断言或另一个断言是否为真
How to compare if one assert OR other assert are true
我有一个应用程序,有英文版和西班牙文版。我使用英语自动化了一些流程,所以断言是英文的。现在,我想用西班牙语自动化它,所以我唯一需要做的就是用西班牙语添加断言。
如何添加西班牙语断言并检查 IF one OR other = true THEN ok,以便能够轻松重用我拥有的所有代码?
这是我使用断言的方式:
if (_app.Query(x => x.Class("SystemWebView").Css("BUTTON#button_home_back")).Length > 0)
{
_app.WaitForElement(e => e.Css("BUTTON#button_home_back"), "Timeout waiting for the Home screen", new TimeSpan(0, 1, 0), null, null);
Assert.AreEqual(_app.Query(e => e.Css("ion-title"))[0].TextContent, "englishString");
_app.Tap(x => x.Class("SystemWebView").Css("BUTTON#button_home_back"));
}
_app.Screenshot("englishString");
break;
您可以创建一个方法,根据语言 returns 正确的字符串。
Assert.AreEqual(_app.Query(e => e.Css("ion-title"))[0].TextContent,
GetTitleInCurrentLanguage());
当您执行此断言时,您必须已经知道该应用程序使用的是哪种语言 运行ning 因此您绝对应该针对该语言的确切字符串进行断言,而不是 a || b
时尚,因为当应用程序应该是英文时,您希望断言失败,以防出现西班牙文标题。
您实现 returns 本地化资源的方法完全取决于您的应用程序中构建本地化的方式。在测试的情况下,您可能希望在测试中对字符串进行硬编码,以确保您不依赖于本地化基础设施的功能。或者您可以单独 运行 测试以确保此基础架构正常工作。
如果我要那样做,我会使用字典和枚举。像这样
enum Lang { English, Spanish }
Lang CurrentLang = Lang.English;
Dictionary<Lang, string> Asserts = new Dictionary<Lang, string>{
{Lang.English, "englishString"},
{Lang.Spanish, "spanishString"}
};
然后
Assert.AreEqual(_app.Query(e => e.Css("ion-title"))[0].TextContent, Asserts[CurrentLang]);
我有一个应用程序,有英文版和西班牙文版。我使用英语自动化了一些流程,所以断言是英文的。现在,我想用西班牙语自动化它,所以我唯一需要做的就是用西班牙语添加断言。
如何添加西班牙语断言并检查 IF one OR other = true THEN ok,以便能够轻松重用我拥有的所有代码?
这是我使用断言的方式:
if (_app.Query(x => x.Class("SystemWebView").Css("BUTTON#button_home_back")).Length > 0)
{
_app.WaitForElement(e => e.Css("BUTTON#button_home_back"), "Timeout waiting for the Home screen", new TimeSpan(0, 1, 0), null, null);
Assert.AreEqual(_app.Query(e => e.Css("ion-title"))[0].TextContent, "englishString");
_app.Tap(x => x.Class("SystemWebView").Css("BUTTON#button_home_back"));
}
_app.Screenshot("englishString");
break;
您可以创建一个方法,根据语言 returns 正确的字符串。
Assert.AreEqual(_app.Query(e => e.Css("ion-title"))[0].TextContent,
GetTitleInCurrentLanguage());
当您执行此断言时,您必须已经知道该应用程序使用的是哪种语言 运行ning 因此您绝对应该针对该语言的确切字符串进行断言,而不是 a || b
时尚,因为当应用程序应该是英文时,您希望断言失败,以防出现西班牙文标题。
您实现 returns 本地化资源的方法完全取决于您的应用程序中构建本地化的方式。在测试的情况下,您可能希望在测试中对字符串进行硬编码,以确保您不依赖于本地化基础设施的功能。或者您可以单独 运行 测试以确保此基础架构正常工作。
如果我要那样做,我会使用字典和枚举。像这样
enum Lang { English, Spanish }
Lang CurrentLang = Lang.English;
Dictionary<Lang, string> Asserts = new Dictionary<Lang, string>{
{Lang.English, "englishString"},
{Lang.Spanish, "spanishString"}
};
然后
Assert.AreEqual(_app.Query(e => e.Css("ion-title"))[0].TextContent, Asserts[CurrentLang]);