phy*_*boy 0 java testing junit abstract-class
我有一个没有抽象方法的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";
}
}
Run Code Online (Sandbox Code Playgroud)
说我在ARG通为db.url的localhost:8080,我想测试的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));
}
}
Run Code Online (Sandbox Code Playgroud)
您将无法创建just SomeAbstractClass,no 的实例- 但您可以创建一个匿名子类:
private SomeAbstractClass sac = new SomeAbstractClass() {};
Run Code Online (Sandbox Code Playgroud)
你可能想创建一个具体子类只是用于测试的缘故,虽然-让你随时做补充抽象方法,你只需要把它们放在那里.
虽然我怀疑你可以使用一个模拟框架,但我怀疑它会增加更多复杂性以获得一点好处,除非你需要检查抽象方法被调用的情况.(模拟非常适合交互测试,但对于其他目的而言可能很脆弱.)它也可以轻松地产生更混乱的错误消息(由于涉及基础设施).
| 归档时间: |
|
| 查看次数: |
201 次 |
| 最近记录: |