测试具有带参数的构造函数的抽象类
我必须测试正在实现接口之一的抽象类之一。 抽象类有一个带参数的构造函数。 我使用 Mockito 作为测试框架。 那么如果我需要调用抽象类中的方法,最好的方法应该是什么?
如果我尝试子类化抽象类,它会要求实现参数构造函数,并且不允许编写无参数构造函数。 另外,如果我尝试模拟一个没有无参数构造函数的类,并将 sysouts 放入方法中,通常我看不到它们被调用(模拟的类是否需要强制的无参数构造函数?),尽管没有 junit 失败。
请帮忙。提前致谢。
I have to test one of my abstract classes which is implementing one of the interfaces.
The abstract class is having a constructor with arguments.
I am using Mockito as the testing framework.
So if I need to call the methods in the abstract class, what should be the best method?
If I try to subclass the abstract class, its asking to implement the argument constructor and not allowing a no-arg constructor to be written.
Also if I try to mock a class without a no-arg constructor, and put sysouts in the methods, usually I cannot see them invoked (Should the mocked class need a mandatory no-arg constructor ?) although there is no junit failure.
Please help. Thanks in advance.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
测试抽象类的一种方法是实现它的具体子类,仅用于测试。
如果抽象类只有一个带参数的构造函数,您可以执行不同的操作:
您选择的方式取决于您的测试用例和抽象类的实现。 - 当然你可以混合使用这些方法。
示例:
顺便说一句:测试使用抽象类的类是完全不同的事情。
One way to test abstract classes is to implement a concreate subclass of it, only for testing.
If the abstract class has only a construtor with arguments you could do different things:
which way you choose depends on your test case and on the implementation of the abstract class. - Of course you could mix the ways.
Example:
BTW: it is a complete different thing to test a class that uses the abstract class.