我如何模拟依赖依赖性界面但子类别?

发布于 2025-01-28 13:22:37 字数 773 浏览 3 评论 0原文

我不确定我的设计是否只是愚蠢的,或者是使其正常工作的好方法。考虑以下类:

public abstract class CheckBase {
    protected Collector collector;

    public void addData(String data) {
        collector.addData(data);
    }

    public void setCollector(Collector collector) {
        this.collector = collector;
    }
}

interface Collector {
    void addData(String data);
}


final class DogCheck extends CheckBase {
    public void someCheck() {
        // check
        addData("SomeData");
    }
}

class ClassWithDependencies {
    private final DogCheck dogCheck;

    public ClassWithDependencies(DogCheck dogCheck) {
        this.dogCheck = dogCheck;
    }
}

现在,我想在classWithDependencies中测试某些内容,而不需要dogcheck,或者应该具有其模拟版本。

我该怎么做?

I'm not sure if my design is simply stupid, or there's a good way to make it work. Consider the following classes:

public abstract class CheckBase {
    protected Collector collector;

    public void addData(String data) {
        collector.addData(data);
    }

    public void setCollector(Collector collector) {
        this.collector = collector;
    }
}

interface Collector {
    void addData(String data);
}


final class DogCheck extends CheckBase {
    public void someCheck() {
        // check
        addData("SomeData");
    }
}

class ClassWithDependencies {
    private final DogCheck dogCheck;

    public ClassWithDependencies(DogCheck dogCheck) {
        this.dogCheck = dogCheck;
    }
}

Now I want to test something in ClassWithDependencies, which does not need DogCheck, or should have a mock version of it.

How can I do this?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文