【发布时间】:2018-09-23 19:27:38
【问题描述】:
我有一个具有 no 抽象方法的 abstract 类...如何进行测试?我可以简单地将其导入测试类并照常工作吗?
例子:
public abstract class SomeAbstractClass implements SomeOtherClass {
// Some variables defined here
private static final String dbUrl = System.getProperty("db.url");
// Some public methods
public String doSomethingToUrl(String url) {
url = url + "/takeMeSomewhereNice";
}
}
假设我为db.url 或localhost:8080 传递了一个arg,我想测试doSomethingToUrl 方法是否输出了新字符串......它仍然是这种格式吗?
public class TestUrl {
SomeAbstractClass sac = new SomeAbstractClass();
@Test
public void testUrlChange() throws Exception {
String testUrl = "localhost:8080";
assertThat("localhost:8080/takeMeSomewhereNice",
sac.doSomethingToUrl(testUrl));
}
}
【问题讨论】:
-
我不确定这是否是常见的做法,但是模拟/存根被测单元(又名抽象类)不会完成这项工作吗?当然,这仅适用于 iff。被测试的方法不调用任何抽象方法。
-
您创建模拟/存根。这是该类的一个小型演示实现,只是为了进行测试。如果代码不是太大,您可以使用匿名类轻松实现这一点。
-
不,对我来说不是重复的@Turing85。
标签: java testing junit abstract-class