我需要创建一个带有文本框的winforms桌面应用程序,其中用户(测试人员)将复制他的脚本,如:
ADD NEW PRODUCT "chair-$50" //should invoke AddProduct(name,price) c# method
REMOVE PRODUCT "table" //should invoke RemoveProduct(name) c# method
我不想写自己的解析器。有没有简单的框架来解析英文测试用例来执行方法?
我遇到的很少是SpecFlow&黄瓜,但我可以在我的应用程序中仅使用它们进行解析而不使用任何测试工具,如NUnit等。
什么是最好的&最简单的选择?我可以使用specflow吗?
答案 0 :(得分:0)
如果您想要以这种方式公开几种方法,请使用输入行并解析它们。您可以为每种方法分两行。 (Java中的代码,不知道C#)
while(true){
String s = keyboard.nextLine();//get the user input
StringTokenizer st = new StringTokenizer(s);
String firstToken = st.nextToken();
if(firstToken.equals("add"))
add(st.nextToken(), st.nextToken());
else if(firstToken.equals("remove"))
remove(st.nextToken());
}
答案 1 :(得分:0)
如果它只是基于行的命令语言,您可以使用自己编写的基于Regex的解析器来执行此操作。 然后你可以在line命令之间使用一些命名约定,即: 添加新产品 - > Pascalize - >在你的类中添加AddNewProduct(),因此很容易将语言扩展到其他操作。使用Convert.ChangeType为函数注入预期类型的函数也是一个想法......依此类推
答案 2 :(得分:0)
如果我是你,我宁愿编写由三部分组成的简单框架:
1)命令和参数解析器
2)设置块,它定义了类方法映射的命令
3)执行程序块,它执行类方法并根据设置传递参数