unit-testing - 如何对接口(interface)进行单元测试?

标签 unit-testing interface tdd

比如有一个接口(interface)IMyInterface ,并且三个类支持此接口(interface):

class A : IMyInterface
{
}

class B : IMyInterface
{
}

class C : IMyInterface
{
}

以最简单的方式,我可以编写三个测试类:ATest、BTest、CTest 并分别测试它们。但是,由于它们支持相同的接口(interface),大多数测试代码都是相同的,很难维护。如何使用简单易用的方法来测试不同类支持的接口(interface)?

(previously asked on the MSDN forums)

最佳答案

要使用通用测试而不考虑实现来测试接口(interface),您可以使用抽象测试用例,然后为接口(interface)的每个实现创建测试用例的具体实例。

抽象(基础)测试用例执行与实现无关的测试(即验证接口(interface)契约),而具体测试负责实例化要测试的对象,并执行任何特定于实现的测试。

关于unit-testing - 如何对接口(interface)进行单元测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3121845/

相关文章:

ruby-on-rails - RSpec Devise sign_in 未在 Controller 中设置 current_user

c# - 在 C# 中实现 ISP 设计模式

asp.net-mvc - ASP.NET MVC - 单元测试过度? (时分驱动)

performance - 自动防止性能下降

c# - 如何对心跳模式进行单元测试?

java - 如何设置 Zk Sessions (org.zkoss.zk.ui),以便我可以对扩展 GenericForwardComposer 的 Controller 类进行单元测试

java - JDK 8 中的默认值是 Java 中多重继承的一种形式吗?

python - pyunit 测试失败,因为方法在传入 5 个参数时只接受 4 个参数

azure - IFeatureManager 单元测试

java - 如何在 Java 中查找特定接口(interface)的所有(子)子接口(interface)?