javascript - 基于二维数组生成测试用例

标签 javascript algorithm unit-testing

我使用四个数组来生成差异测试用例,如下所示

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/

相关文章:

javascript - async/await 链何时停止?

javascript - Rails 4 中汉堡包 jquery 按钮代码在哪里?

javascript - 如何在 CSS 中使用 macOS 系统强调色?

algorithm - 找到分数在费里序列中的位置

java - java中如何检查一个列表是否是另一个列表的子集?

javascript - Alfresco Action - 使用 Action 将文件转换为 PDF

algorithm - 子序列的概率计算和算法

javascript - 如何对 Polyfilled WebComponents 自定义元素进行单元测试

unit-testing - 如何同步对 akka Actor 进行单元测试?

visual-studio-2008 - 有人在生产中使用 Moles/Pex 吗?