我正在嘗試使用 TestNG 框架來測驗應該引發例外的值。為此,我使用 a@DataProvider一次測驗不同的值,而不是運行具有不同資料值的多個方法。
本質上,我期望根據失敗的原因(“data1 太短”)、(data1 太長)、(“data2 太短”)、(data2 太長)等出現多種錯誤訊息這個例子我會說我希望 data1 的長度為 5 和 data2 的長度為 6
我想要做的是測驗輸出的錯誤資訊。但是當我嘗試使用時,expectedExceptionsMessageRegExp我似乎無法使用帶有“或”或逗號的多個值。
所以我想知道的是我是否可以使用 testNG 測驗控制臺中回傳的特定訊息@DataProvider。
我已經讓它在沒有 DataProvider 的情況下作業,但它使用多種方法,對我來說似乎很草率所以有多種expectedExceptions型別但不能使用expectedExceptionsMessageRegExp.
我的方法:
@Test(dataProvider = "TestNGProblemsDP", expectedExceptions = {IllegalArgumentException.class},
expectedExceptionsMessageRegExp = ("data1 is too short"))
public void TestNGProblems(String data1, String data2) throws Exception {
DO STUFF WHERE DATA1 SHOULD BE LENGTH 5 AND DATA2 SHOULD BE LENGTH 6
}
@DataProvider:
@DataProvider(name = "TestNGProblemsDP")
public Object[][] dataProvider(Method m) {
switch(m.getName()) {
case "TestNGProblems"
return new Object[][] {
{"hello", "world!"}, //pass
{"hell", "world!"}, //fail
{"hello", "orld!"}, //fail
{"hello", "word"}, //fail
{"", ""} //fail
case....
};
所以實際發生的情況是,如果我沒有正確的訊息,我會得到一個 TestNG 例外:
org.testng.TestException: The exception was thrown with the wrong message: expected "data1 is too short" but got "data1 is too long"
如果我嘗試添加多條訊息,即:
expectedExceptionsMessageRegExp = ("data1 is too short") || ("data1 is too long"))
或:
expectedExceptionsMessageRegExp = ("data1 is too short"), ("data1 is too long"))
它就是行不通的。
感謝所有閱讀此文并為格式化等感到抱歉的人,我的第一篇文章 :)
uj5u.com熱心網友回復:
您可以在資料提供者提供的一組值中再添加一個欄位,其中該新欄位將包含預期的錯誤訊息。
然后,您只需將測驗包裝起來try-catch并使用該附加引數來驗證catch塊中的實際訊息。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/531125.html
上一篇::無法訪問字串型別的偏移量
