gpt4 book ai didi

java - Junit 测试运行卡住

转载 作者:行者123 更新时间:2023-11-28 21:21:29 26 4
gpt4 key购买 nike

今天是我第一次接触 Junit,所以我对一些返回整数的程序进行了一些练习,结果运行良好。然后我想尝试返回一个 boolean 值,当我运行测试用例时,它没有做任何事情,它正在运行,但条不会变成绿色或红色。

这是类:

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

}

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

最佳答案

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

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

}

如果你永远找不到最内层的 if 的因素,你将继续无限循环,因为没有什么能使 nr==0 为假:在执行 >for 循环一次,你只需要继续运行 while 循环而不执行 for 循环体。

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

        for(i=2;i<=n/2 && nr==0;i++) {

关于java - Junit 测试运行卡住,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50749180/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com