Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/394.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java JUnit-测试创建的最大对象数_Java_Junit_Assert - Fatal编程技术网

Java JUnit-测试创建的最大对象数

Java JUnit-测试创建的最大对象数,java,junit,assert,Java,Junit,Assert,我有一个非常小的类,BuildThreeObjects,它使用私有int变量numbjects来存储计数,最多创建3个对象。如果计数小于3,则返回一个新对象,否则返回null 有谁能指导我如何测试使用JUnit最多创建3个对象吗。查看API并没有多大帮助。我假设将使用assertNotNull或assertNull,但我不知道如何使用 //BuildThreeObjects类的代码 照字面意思做: assertNotNull(createObject()); assertNotNull(cr

我有一个非常小的类,BuildThreeObjects,它使用私有int变量numbjects来存储计数,最多创建3个对象。如果计数小于3,则返回一个新对象,否则返回
null

有谁能指导我如何测试使用JUnit最多创建3个对象吗。查看API并没有多大帮助。我假设将使用
assertNotNull
assertNull
,但我不知道如何使用


//BuildThreeObjects类的代码

照字面意思做:

assertNotNull(createObject());

assertNotNull(createObject());

assertNotNull(createObject());

assertNull(createObject());
如果for循环更具表现力,您也可以使用它。

直接执行即可:

assertNotNull(createObject());

assertNotNull(createObject());

assertNotNull(createObject());

assertNull(createObject());

如果for循环更具表现力,您也可以使用它。

您的意思是这样的

class BuildThreeObjects{
    int count = 0;
    public Object buildObject(){
        if(count >= 3){
            return null;
        } else {
            count++;
            return new Object();
        }
    }
}

private BuildThreeObjects bto;

@Before
public void setUp() throws Exception {
    bto = new BuildThreeObjects();
}

@Test
public void testBuild() {
    assertNotNull(bto.buildObject());
    System.out.println(bto.count);
    assertNotNull(bto.buildObject());
    System.out.println(bto.count);
    assertNotNull(bto.buildObject());
    System.out.println(bto.count);
    assertNull(bto.buildObject());
    System.out.println(bto.count);
}
//带for循环

for(int i=0; i < 100; i++){
        if(i < 3){
            assertNotNull(bto.buildObject());
            System.out.println(bto.count);
        } else {
             assertNull(bto.buildObject());
               System.out.println(bto.count);
        }
    }
for(int i=0;i<100;i++){
如果(i<3){
assertNotNull(bto.buildObject());
系统输出打印项次(bto计数);
}否则{
assertNull(bto.buildObject());
系统输出打印项次(bto计数);
}
}

你的意思是这样的

class BuildThreeObjects{
    int count = 0;
    public Object buildObject(){
        if(count >= 3){
            return null;
        } else {
            count++;
            return new Object();
        }
    }
}

private BuildThreeObjects bto;

@Before
public void setUp() throws Exception {
    bto = new BuildThreeObjects();
}

@Test
public void testBuild() {
    assertNotNull(bto.buildObject());
    System.out.println(bto.count);
    assertNotNull(bto.buildObject());
    System.out.println(bto.count);
    assertNotNull(bto.buildObject());
    System.out.println(bto.count);
    assertNull(bto.buildObject());
    System.out.println(bto.count);
}
//带for循环

for(int i=0; i < 100; i++){
        if(i < 3){
            assertNotNull(bto.buildObject());
            System.out.println(bto.count);
        } else {
             assertNull(bto.buildObject());
               System.out.println(bto.count);
        }
    }
for(int i=0;i<100;i++){
如果(i<3){
assertNotNull(bto.buildObject());
系统输出打印项次(bto计数);
}否则{
assertNull(bto.buildObject());
系统输出打印项次(bto计数);
}
}

您能给我们看看您的一些代码吗?在我看来,最好是跟踪某个静态变量中对象的数量。我一直在考虑使用for循环,但环顾四周后,我发现所有的方法都是使用params或repeat,这两种方法都需要更多我认为必要的编码。你能给我们展示一些你的代码吗?在我看来,最好是跟踪某个静态变量中对象的数量。我一直在考虑使用for循环,但环顾四周后,我发现所有的方法都是使用params或repeat,这两种方法都需要更多我认为必要的编码。为什么你认为将count设置为private会改变一切?你只在课堂上使用它,所以你可以访问“计数”是的,对不起。我删除了我的评论,因为它很愚蠢。这个很好用,谢谢。我不知道为什么我现在不能得到这个!另一方面,如果有3个以上的对象,比如说100个,那么在不编写100行代码的情况下,我怎么做呢?@ConnorMcGuile如果你有一些大的数字,最好在类中注入“max objects to create”参数。在这种情况下,出于测试目的,您可以注入一个小的数字并进行简单的测试,为了应用程序的使用,您可以注入应用程序中所需的数字。否则,您的单元测试突然变得臃肿,它更多的是作为性能测试。为什么您认为将计数私有化会改变任何事情?你只在课堂上使用它,所以你可以访问“计数”是的,对不起。我删除了我的评论,因为它很愚蠢。这个很好用,谢谢。我不知道为什么我现在不能得到这个!另一方面,如果有3个以上的对象,比如说100个,那么在不编写100行代码的情况下,我怎么做呢?@ConnorMcGuile如果你有一些大的数字,最好在类中注入“max objects to create”参数。在这种情况下,出于测试目的,您可以注入一个小的数字并进行简单的测试,为了应用程序的使用,您可以注入应用程序中所需的数字。否则,您的单元测试会突然变得臃肿,更像是性能测试。