1

我是使用 TestNG 的 selenium 新手。如果你能回答我,那将是很大的帮助。我正在为将创建文本注释的 webApplication 编写测试用例。为了测试不同类型的输入,使用了@dataProvider。因为在输入所有值后我有两个选项,即我可以保存或者我可以取消注释创建。我使用了引发异常的@optional 注释。您能否解释一下我们是否可以将@dataprovider 与@optional 注释一起使用。我写过这样的代码。

@Test
public class CreateNotesTest extends BeginAndEndTest
{

@Test(dataProvider = "createNotes", dataProviderClass = CreateNotesTest.class)
public void createsNotes(String title,String content,String tags,@Optional("save") String action)
{
    WebDriver driver = getDriver();
    CreateNotes notes = new CreateNotes(driver);
    boolean status = notes.createNote(title, content, tags, action);
    if(action.equalsIgnoreCase("save") || action.equals(""))
        {
        Assert.assertEquals(status, true);
        }
    else
        Assert.assertEquals(status, false);

}
/**
 * 
 * @return dataProvider
 */
@DataProvider(name = "createNotes")
public static Object[][] getNotesData()
{
    return new Object[][]{{"test1","my family is my first priority","family"},{"","hello","greeting","cancel"}};
}
4

1 回答 1

1

AFAIK,您不能将@Optional 与dataprovider 一起使用,而只能与@Parameters 一起使用。此外,如果与参数一起使用, if(action.equalsIgnoreCase("save") || action.equals(""))如果 action 为 null,则会抛出 nullpointerexception。

于 2014-10-31T07:50:27.677 回答