#c# #unit-testing #testing
#c# #модульное тестирование #тестирование
Вопрос:
Я столкнулся с проблемой, когда тест завершается неудачно при запуске, но завершается успешно при взломе теста.
Assert.Equals(typeof(Plugin.Plugin), plugin.GetType());
При выполнении теста идентификаторы guid отличаются. Вызов typeof возвращает идентификатор guid со всеми нулями, в то время как GetType имеет ожидаемый идентификатор guid. Если я установлю точку останова для этой строки, идентификаторы guid совпадут. Кто-нибудь сталкивался с этим? Они оба происходят из одной и той же сборки, поэтому они оба должны совпадать. Для этого используется .net 461
Спасибо.
Комментарии:
1. Вы уверены, что переменная плагина является экземпляром класса плагина, а не экземпляром производного класса?
2. Нет, я уверен, что это так. Группа коллег на работе посмотрела на это, и мы не можем понять, почему это происходит. Возвращенная система. Тип точно такой же, с той разницей, что идентификатор guid равен нулю. Та же сборка C #, без COM или чего-то необычного. Я обошел это, сравнив полное имя, но я хочу быть уверенным, что я не маскирую проблему, делая это.
3. Вероятно, вам следует использовать
Assert.AreEqual
Assert.Equal
илиTest.If.Value.IsEqual
для начала, в зависимости от используемой вами среды модульного тестирования.Assert.Equals
никогда не должно работать.