我正在设置一些实际的考试,并要求某些方法的实现是递归的。是否有一种方法使JUnit测试只有在方法的实现是递归的(当然是正确的)时才能通过?
import static org.junit.Assert.*;
import org.junit.*;
import java.io.*;
import java.text.*;
import java.util.*;
import org.junit.rules.*;
import java.lang.reflect.*;
public class Service { //begin class
/**
* @param n: assumed to be more than 0
* @param d, d >= 0 and d <= 9
* @return true if number n contains the digit d, false otherwise
* you may assume that 0 itself doesn't contain ANY digit (not even 0)
* NOTE: This method must be implemented recursively.
* hint: n%10 gives the last digit, n/10 gives the rest of the number
*/
public static boolean containsDigit(int n, int d) {
return false; //to be completed
}
@Test
public void testContainsDigit() {
assertTrue(Service.containsDigit(1729, 1));
assertTrue(Service.containsDigit(1234567890, 2));
assertFalse(Service.containsDigit(1729, 8));
}
}
public static boolean containsDigit(int n, int d) {
if(n == 0)
return false;
if(n%10 == d)
return true;
return containsDigit(n/10, d);
}
和失败的迭代(即使是正确的)实现,如:
public static boolean containsDigit(int n, int d) {
while(n > 0) {
if(n%10 == d) {
return true;
}
n/=10;
}
return false;
}
我们将非常感谢在正确方向上的任何帮助或指导。
JUnit本身没有工具来检查流是递归的还是迭代的,但它肯定可以检查调用返回正确的结果。
现在也不可能从“早期”执行中收集堆栈痕迹。
我看不出mocks在这方面有什么帮助,但我可能遗漏了一些东西,也许我们的同事会为此提供一个例子,不过我建议使用以下方法:
class MyServiceForChecks extends Service {
private List<StackTraceElement[]> invocationStackTraces = new ArrayList<>();
public boolean containsDigit(int n, int d) { // its not static anymore
StackTraceElement [] stackTrace = getStackTrace();
invocationStackTraces.add(stackTrace);
return super.containsDigit(n,d);
}
public List<StackTraceElement[]> getInvocationStackTraces () {
return this.invocationStackTraces;
}
}
在JUnit中,测试MyServiceForChecks类,而不是Service类。在ContainsDigits
方法完成执行后,您可以调用GetInvocationStackTraces
方法并分析结果。
如果无法创建MyServiceForChecks类,则可以使用CGLIB库动态生成它。
问题内容: 因此,我敢肯定那里有类似的东西,但是我一直在寻找一个小时,却没有找到我真正想要的东西。说我有一堂课,看起来像这样: 我该如何做这样的工作? 问题答案: 使用Mockito,您可以像这样 监视真实对象 : 有一些陷阱,因此也请查看相关文档。
问题内容: 在我使用的许多代码中,都有一些可怕的东西,例如: 或者-更糟糕的是: 有正确的方法来: 创建一个新的URL(或者它是一个URI)。 向其添加正确的转义参数。 在这些参数中添加格式正确的文件路径。 将其解析为字符串。 从本质上讲,仅构建字符串比正确地构建字符串太容易了。有没有一种方法可以像构建字符串一样容易 地正确 完成呢? 添加 为了清楚起见-经过一番思考-我想我正在寻找类似的东西:
本文向大家介绍PHP实现递归目录的5种方法,包括了PHP实现递归目录的5种方法的使用技巧和注意事项,需要的朋友参考一下 项目开发中免不了要在服务器上创建文件夹,比如上传图片时的目录,模板解析时的目录等。这不当前手下的项目就用到了这个,于是总结了几个循环创建目录的方法。 方法一:使用glob循环 方法二:使用dir && read循环 方法三:使用opendir && readdir循环 方法四:
我一直得到这个错误与我的SQL:我的SQL是正确的,它的工作在控制台中,但不是在python文件中。我认为错误是在参数中,因为代码似乎工作,就在参数之后,我的打印(完成)不打印:)但我看不到它:/ 这是我的代码(顺便说一句,我在数据库中使用全局变量g,它在我的其他函数中工作):
在空手道中,我希望有一个模式变量,它是响应数据的超集,这样我就可以用相同的模式测试多个请求。 这对于GraphQL应该特别有用,因为请求本身定义了返回的字段。 预期模式: 回答数据: 在本例中,响应返回的所有键。数据应该在架构中,但架构中的任何键都不在响应中。数据应该被忽略。 在空手道中有没有办法做到这一点,或者有没有计划在将来增加这一功能? 编辑:更新了示例,因为唯一遗漏的属性是一个可为空的属性
本文向大家介绍Python实现检测服务器是否可以ping通的2种方法,包括了Python实现检测服务器是否可以ping通的2种方法的使用技巧和注意事项,需要的朋友参考一下 好想在2014结束前再赶出个10篇博文来,~(>_<)~,不写博客真不是一个好兆头,至少说明对学习的欲望和对知识的研究都不是那么积极了,如果说这1天的时间我能赶出几篇精致的博文,你们信不信,哈哈,反正我是信了。。。 python