我使用四个数组来生成差异测试用例,如下所示
var phone = ['phone1', 'phone2', 'phone3'];
var browsers = ['chrome', 'firefox'];
var location = ['1324','2434','4234','1234','3243'];
var network = ['3g', '4g', 'wifi'];
var isLogin = ['service worker', 'no service worker'];
如何编写代码来生成测试用例(180 个不同的用例)。我尝试循环和递归。我似乎无法找到一个完美的方法来做到这一点。注意我正在使用 javascript。只能使用数组for循环,由于某些原因不能使用对象。
谁能给我一些灵感?
最佳答案
我用递归在 Java 中尝试了一些场景(方法可以以相同的方式适用于 Javascript),在这种情况下,我使用 3 个数组,其中 2 个我使用递归。
public class Test3 {
static String[] names = { "Ram", "Shyam", "Mohan", "Rohan", "Saket" };
static String[] citys = { "Bhopal", "Indore", "Ujjan", "Dewas", "Rewa" };
static String[] addresses = { "add1", "add2", "add3", "add4", "add5" };
static StringBuffer buffer = new StringBuffer();
public static void main(String... strings) {
for (String a : names) {
System.out.println(testData(a)+"\n");
buffer.setLength(0);
}
}
public static String testData(String name) {
return generateData(name, 0, -1);
}
public static String generateData(String combination, int countA, int countB) {
if ((countA == names.length - 1) && (countB == names.length - 1)) {
return buffer.toString();
}
if (countB == addresses.length - 1) {
countA = countA + 1;
countB = -1;
}
countB = countB + 1;
buffer.append(combination + citys[countA] + addresses[countB] + "\n");
return generateData(combination, countA, countB);
}
}
希望这会有所帮助!
关于javascript - 基于二维数组生成测试用例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51586615/