首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Junit测试运行冻结

Junit测试运行冻结
EN

Stack Overflow用户
提问于 2018-06-08 03:48:45
回答 1查看 917关注 0票数 0

今天是我第一次接触Junit,所以我对一些返回it的程序进行了一点练习,它工作得很好。然后我想尝试返回一个布尔值,当我运行测试用例时,它什么也不做,它正在运行,但是条形图没有变成绿色或红色。

这是一个类:

public class primcheck {

    public boolean prim(int n) {
        int nr=0;
        int i;
        while(nr==0) {
            for(i=2;i<=n/2;i++) {
                if(n%i==0) nr++;
            }

        }
        if(nr==0) return true;
         return false;


    }       
}

和Junit测试用例

import static org.junit.jupiter.api.Assertions.*;

import org.junit.jupiter.api.Test;

class primeTest {

    @Test
    void test() {
        primcheck pc = new primcheck();
        boolean output = pc.prim(5);
        assertEquals(false,output);
    }

}

你能给我解释一下我做错了什么吗?提前谢谢你!

EN

回答 1

Stack Overflow用户

发布于 2018-06-08 03:52:36

这个问题与JUnit无关。如果你“手动”运行它,你也会遇到同样的问题。

    int nr=0;
    int i;
    while(nr==0) {
        for(i=2;i<=n/2;i++) {
            if(n%i==0) nr++;
        }

    }

如果您找不到最里面的因子,您将继续无限循环,因为没有任何东西会使nr==0为假:在执行一次for循环之后,您只需继续运行while循环,而不执行if循环体。

删除while循环,并将条件添加到for循环保护中(或者完全省略它):

        for(i=2;i<=n/2 && nr==0;i++) {
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50749180

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档