Selenium With TestNG



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

@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"}};
}

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

最新更新