gpt4 book ai didi

java - 如何测试包装另一个方法的方法?

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

让我们想象一下有一个类(用类似 Java 的伪代码编写):

class MyClass {

...

public List<Element> getElementsThatContains(String str) {
return this.getElementsThatContains(new Set<String> { str });
}

public List<Element> getElementsThatContains(Set<String> strs) {

...

}
}

首先 - 我有 getElementsThatContains(Set<String> strs)正确地 100% 覆盖。

我应该如何覆盖getElementsThatContains(String str) :

  • 我是否应该复制(几乎)所有测试,但要调用 getElementsThatContains(String str)
  • 我应该只做一个测试吗检查第一种方法和第二种方法的结果是否相同的方法(具有相同的传入数据)?
  • 我应该重构我的代码吗?这样的情况? (如果是,如何?)

最佳答案

是的,您应该涵盖这两种方法。进行单元测试的原因是重构代码时的安全网。例如,有人可能会重构“getElementsThatContains(String str)”的实现,它总是会返回一个空列表。尽管 getElementsThatContains(Set strs) 具有 100% 的覆盖率,但这些测试不会捕捉到这一点。

不,您不应该制作一个测试方法来检查第一种方法和第二种方法的结果是否相同。这通常被认为是一种不好的做法。此外,如果一个方法中存在错误,您的测试只会检查另一个方法是否返回相同的错误结果。

不,您不应该复制所有测试,因为每种方法的测试用例都不同。这些方法的参数是不同的。因此,尽管调用了相同的方法,但每个测试用例都有不同的测试用例。

关于java - 如何测试包装另一个方法的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52972008/

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