Кроты не показывают новые сигнатуры методов после изменений в классе
Я имел
class Voo
{
private static AnotherClass Doo(int id)
{
//do some stuff with id then return object of AnotherClass
return x[0];
}
}
и использовал это частное с родинками
MVoo.DooInt32 = delegate ...
ТЕПЕРЬ я изменил метод на:
class Voo
{
private static AnotherClass Doo(string a, object b)
{
//do some stuff with a and b then return object of AnotherClass
return x[0];
}
}
НО родинки не дают мне новую подпись. Силл MVoo.DooInt32 но я ожидаю MVoo.DooStringObject
Я удалил ссылку на родинки, почистил, восстановил. Пока нет положительного результата.
Есть идеи?
2 ответа
Решение
Вы должны быть уверены, что удалили файл сборки mole (.dll), перестроили тестовый проект без типа mole, а затем добавили его обратно. Этот процесс тщательный и всегда работал для меня в этой ситуации:
- Удалить ссылку на сборку моль из тестового проекта
- Удалите файл.moles, названный в честь рассматриваемой сборки
- В обозревателе решений показать все файлы в тестовом проекте
- Разверните скрытую папку "MolesAssemblies"
- Удалите нужный файл _.Moles.dll и соответствующие файлы XML.
- Удалить (не удалить) тестовые файлы, которые ссылаются на сборку крота
- Перестройте тестовый проект
- Выберите опцию контекстного меню "Добавить сборку родинок" в справочнике по нужному тестовому проекту.
- Добавить тестовые файлы, которые были временно удалены из проекта
- Перестройте тестовый проект
Вы должны удалить файл moles для этой сборки, например, voo.moles, а затем создать новый.