Tag: pex and moles

如何告诉Pex不要存根具体实现的抽象类

我正在尝试使用Pex来testing一些代码。 我有一个具有四个具体实现的抽象类。 我已经为四种具体types中的每一种创build了工厂方法。 我也为抽象types创build了一个,除非这个漂亮的线程解释,Pex将不会使用抽象工厂方法,也不应该使用抽象工厂方法。 问题是我的一些代码依赖于所有的四个具体types(因为这是非常非常不可能的,将有更多的子类将被创build),但Pex是通过使用Moles来创build一个存根破坏代码。 我如何强迫Pex使用工厂方法之一(我不介意的任何一种方法)创build抽象类的实例,而不必为该抽象类创buildMoles存根? 有一个PexAssume指令可以完成这个吗? 请注意,某些具体types构成了一种树结构types,所以说ConcreteImplementation从AbstractClass派生,而ConcreteImplementation具有两个AbstractClasstypes的属性。 我需要确保根本不在树的任何地方使用存根。 (并不是所有的具体实现都具有AbstractClass属性。) 编辑: 看来,我需要添加更多关于类结构本身如何工作的信息,但请记住,目标仍然是让Pex不要存根类。 这里是抽象基类的简化版本及其四个具体实现。 public abstract class AbstractClass { public abstract AbstractClass Distill(); public static bool operator ==(AbstractClass left, AbstractClass right) { // some logic that returns a bool } public static bool operator !=(AbstractClass left, AbstractClass right) { // some logic that basically returns !(operator […]