java - 使用 junit 测试 Java 中的无修饰符方法

标签 java unit-testing

我有以下方法,没有在我的 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 类中也有以下测试方法。我想知道是否有人可以告诉我应该如何测试我的方法,因为我不知道如何从测试类访问它。谢谢!

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);



}

最佳答案

理想情况下,您的单元测试类应与您的类驻留在同一类路径包中。

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/ma​​in/java/sg/java/test

package sg.java.test;

public class Myclass {
    float maximumActiveDutyCycle() {
        return 0f;
    }
}

src/测试/java/sg/java/test

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 为前缀。

enter image description here

关于java - 使用 junit 测试 Java 中的无修饰符方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13282042/

相关文章:

java - 使用 MongoDB 3.0 Java 驱动程序复制数据库

visual-studio-2008 - 在调试单元测试时,Visual Studio为什么不打破异常?

java - 是否有任何可以模拟错误响应的测试 SMTP 服务器?

typescript - ts-jest:忽略 TypeScript 类型错误

javascript - 如何测试在 componentDidMount 中异步调用创建的组件?

java - 以下选项(@Service、@Bean 或 Static method)有什么区别

Java XML XSLT 生成 HTML 报告

java - java中的循环调度

java - Wildfly -9 javax.mail 不工作

unit-testing - 如何将 "full stack"功能分解为验收、集成和单元测试?