在xUnit.net中是否有办法使单元测试依赖于另一个,以便在另一个失败时跳过它?
注意:这不是关于测试之间共享装置或使测试相互耦合等问题.我避免这样做.
例
Given: Unit tests OuterTest and InnerTest Condition: If OuterTest is dependent on InnerTest and InnerTest fails Result: OuterTest is skipped (ideally with an explanation)
合理
这是单元测试序列化的一部分,但我也可以考虑其他用例.我有一个类型Outer,它接受Inner类型的依赖,其中Inner被序列化为Outer序列化的一部分.我有一个内部类型的序列化单元测试,如果失败,我知道外部的序列化单元测试将由于嵌套而失败.
类型看起来像这样:
[Serializable] class Inner {} [Serializable] class Outer { public Outer(Inner inner) { Inner = inner; } [Serializable] Inner Inner { get; } }
>我真的不想在Outer的单元测试中使用Stub for Inner,因为这迫使我为Inner引入一个接口并且混乱了一个层次结构,其中只需要这些类型的单个具体实现.它还迫使我为存根创建一个自定义序列化器,这听起来比利益更麻烦.
>鉴于很难为内部类创建存根,以下是我的论点:我不希望两个测试都失败,因为这使得很难找到失败的根本原因.我认为如果跳过Outer的单元测试并发出依赖失败的警告,那就更好了.
问题
在搜索一段时间后,我没有找到关于此用例的任何信息,因此我有以下问题:
>是否可以根据xUnit.net中其他单元测试的结果创建有条件运行的测试?
>这是一个不好的请求或代码味道,如果是这样,为什么?
解决方法
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。