Java JUnit-测试创建的最大对象数
我有一个非常小的类,BuildThreeObjects,它使用私有int变量numbjects来存储计数,最多创建3个对象。如果计数小于3,则返回一个新对象,否则返回Java JUnit-测试创建的最大对象数,java,junit,assert,Java,Junit,Assert,我有一个非常小的类,BuildThreeObjects,它使用私有int变量numbjects来存储计数,最多创建3个对象。如果计数小于3,则返回一个新对象,否则返回null 有谁能指导我如何测试使用JUnit最多创建3个对象吗。查看API并没有多大帮助。我假设将使用assertNotNull或assertNull,但我不知道如何使用 //BuildThreeObjects类的代码 照字面意思做: assertNotNull(createObject()); assertNotNull(cr
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”参数。在这种情况下,出于测试目的,您可以注入一个小的数字并进行简单的测试,为了应用程序的使用,您可以注入应用程序中所需的数字。否则,您的单元测试会突然变得臃肿,更像是性能测试。