Могу ли я «унаследовать» делегата? Ищете способы объединить Moq и MSpec без конфликтов вокруг - PullRequest
1 голос
/ 23 мая 2010

Я начал использовать MSpec для BDD, и с давних пор я использую Moq в качестве фреймворка для насмешек. Тем не менее, они оба определяют It, что означает, что я не могу иметь using Moq и using Machine.Specifications в одном и том же файле кода без необходимости явно указывать пространство имен каждый раз, когда я использую It. Любой, кто использовал MSpec, знает, что на самом деле это не вариант.

Я погуглил для решения этой проблемы, и этот блоггер упоминает, что раздвоил MSpec для себя, и реализовал поддержку паралелей для Given, When, Then.

Я бы хотел сделать это, но я не могу понять, как объявить, например, Given без необходимости проходить через весь фреймворк, ища ссылки на Establish и изменяя код там, чтобы он соответствовал тому, что я хочу либо быть в порядке.

Для справки, Establish, Because и It объявляются следующим образом:

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

Мне нужно как-то объявить Given, чтобы везде код искал Establish, Given тоже в порядке.

1 Ответ

1 голос
/ 23 мая 2010

Вместо того чтобы использовать полные имена типов для преодоления конфликта, вы можете использовать «использование» для псевдонима имен типов, например:

using MadeUpName = System.Windows.Forms.SomeClass;

Затем вы можете использовать MadeUpName без конфликта.

MadeUpName obj = new MadeUpName();
...