1

我已经开始将MSpec用于 BDD,并且很久以前我就使用 Moq 作为我的模拟框架。但是,它们都定义了It,这意味着我不能在同一个代码文件中拥有using Moqusing Machine.Specifications,而不必每次使用It. 任何使用过 MSpec 的人都知道这不是一个真正的选择。

我在谷歌上搜索了这个问题的解决方案,这个博主提到已经为自己分叉了 MSpec,并实现了对Given, When, . 的并行支持Then

我想这样做,但我不知道如何声明例如Given,而不必通过整个框架寻找对 的引用Establish,并更改那里的代码以匹配我想要的任何一个都可以。

作为参考,EstablishBecauseIt下列方式声明:

public delegate void Establish();
public delegate void Because();
public delegate void It();

我需要的是以某种方式声明Given,以便代码在任何地方寻找一个EstablishGiven也可以。

4

1 回答 1

1

与其使用完全限定的类型名称来克服冲突,不如使用“使用”为类型名称起别名,例如:

using MadeUpName = System.Windows.Forms.SomeClass;

然后,您可以使用 MadeUpName 而不会发生冲突。

MadeUpName obj = new MadeUpName();
于 2010-05-22T23:01:02.570 回答