我有以下方法,在我的Column类中没有完全声明修饰符。
float maximumActiveDutyCycle(ArrayList<Column> columns)
{
// TODO: change public back to default
float maximumActiveDutyCycle = 0.0f;
for (Column column : columns)
{
if (column.activeDutyCycle > maximumActiveDutyCycle)
{
maximumActiveDutyCycle = column.activeDutyCycle;
}
}
return maximumActiveDutyCycle;
}
但是我在TestColumn类中也有以下测试方法。我想知道是否有人可以告诉我应该如何测试我的方法,因为我不知道如何从Test类访问它。谢谢!
public void testMaximumActiveDutyCycle()
{
this.column00.setActiveDutyCylce(1.1f);
this.column01.setActiveDutyCylce(1.3f);
this.column33.setActiveDutyCylce(1.35f);
this.column57.setActiveDutyCylce(1.355f);
Set<Column> columns = new HashSet<Column>();
columns.add(column00);
columns.add(column01);
columns.add(column33);
columns.add(column57);
}
答案 0 :(得分:2)
理想情况下,您的单元测试类应与您的类位于相同的类路径包中。
src/main/java/com/yourcompany/project <- your project's classes
src/test/java/com/yourcompany/project <- your unit tests
因此,在您的单元测试类中,您可以访问具有包访问可见性的方法:
Column column = new Column()
column.maximumActiveDutyCycle(columns);
代码示例:
的src / 主要强> / JAVA / SG /爪哇/测试
package sg.java.test;
public class Myclass {
float maximumActiveDutyCycle() {
return 0f;
}
}
的src /的测试强> / JAVA / SG /爪哇/测试
package sg.java.test;
import static org.junit.Assert.assertTrue;
import org.junit.Test;
public class MyclassTest {
@Test
public void testMaximumActiveDutyCycle() {
Myclass clazz = new Myclass();
assertTrue(clazz.maximumActiveDutyCycle() == 0f);
}
}
编辑:更改了单元测试的类名,应使用Test
进行后期修复,而不是前缀。虽然方法名称应按惯例以test
为前缀。
答案 1 :(得分:0)
您的方法具有默认(包)范围。您的测试类必须与Column
类位于同一个包中,以使其可见。
请注意,即使您的Column
类位于src/
文件夹中,并且您的测试位于test/
文件夹中,只要包名称在相应的源文件夹中相同,你的班级将可见。