В следующем коде тестирования мы инициализируем статическую переменную члена _mapper в строке 14. Однако тест Mapddmtokumoarticle выполняется до того, как эта инициализация произойдет, и, таким образом, мы имеем NullReferenceErr On Line 41.
Почему статика не инициализируется . /> Как показано ниже, я могу исправить его, инициализируя внутри конструктора, но затем мы получаем нагрузки предупреждений о том, что _mapper «может быть null.
pre -pre Pre wy. class = "lang-cs prettyprint-override"> public class DataMapTests
{
static readonly IOptions TestOptions = Options.Create(TestConstants.TestOptions);
// Line 14: Should initialize here but it's not running first!
static Mapper _mapper = DataMap.InitializeAutomapper(TestOptions.Value);
public DataMapTests()
{
// This line uncommented, fixes the problem but WHY is it necessary
//_mapper = DataMap.InitializeAutomapper(TestOptions.Value);
}
[Fact]
public void MapDDMToKumoArticle()
{
DDMArticle ddmArticle = FileReader.DeserializeFile("article_event.json");
// Line 41: Inside DataMap we get a NullReferenceError because InitializeAutomapper has not been called
KumoArticle article = DataMap.DDMArticleToKumo(ddmArticle, ddmArticle.TradeItems[0]);
}
< /code>
Обновление: реализация DataMap < /p>
public static class DataMap
{
private static Dictionary language = TcposLanguageMapping;
private static Mapper _mapper;
public static Mapper InitializeAutomapper(TcposOptions options)
{
var shopType = ShopTypeDictionary;
var shopOwner = ShopOwnerDictionary;
var canton = CantonDictionary;
var config = new MapperConfiguration(cfg =>
{
cfg.CreateMap
()
.ForMember(dest => dest.Id, act => act.MapFrom(src => $"5{src.BranchIdentifier}"));
});
// Here the private member _mapper is initialized
_mapper = new Mapper(config);
return _mapper;
}
public static KumoArticle DDMArticleToKumo(DDMArticle article, TradeItem tradeItem)
{
// This line throws a NullReferenceException because _mapper has not been initialized
KumoArticle kumoArticle = _mapper.Map(article);
Подробнее здесь: https://stackoverflow.com/questions/796 ... ds-are-run
Почему статический элемент не инициализируется до запуска методов испытаний? ⇐ C#
Место общения программистов C#
1750669207
Anonymous
В следующем коде тестирования мы инициализируем статическую переменную члена _mapper в строке 14. Однако тест Mapddmtokumoarticle выполняется до того, как эта инициализация произойдет, и, таким образом, мы имеем NullReferenceErr On Line 41.
Почему статика не инициализируется . /> Как показано ниже, я могу исправить его, инициализируя внутри конструктора, но затем мы получаем нагрузки предупреждений о том, что _mapper «может быть null.
pre -pre Pre wy. class = "lang-cs prettyprint-override"> public class DataMapTests
{
static readonly IOptions TestOptions = Options.Create(TestConstants.TestOptions);
// Line 14: Should initialize here but it's not running first!
static Mapper _mapper = DataMap.InitializeAutomapper(TestOptions.Value);
public DataMapTests()
{
// This line uncommented, fixes the problem but WHY is it necessary
//_mapper = DataMap.InitializeAutomapper(TestOptions.Value);
}
[Fact]
public void MapDDMToKumoArticle()
{
DDMArticle ddmArticle = FileReader.DeserializeFile("article_event.json");
// Line 41: Inside DataMap we get a NullReferenceError because InitializeAutomapper has not been called
KumoArticle article = DataMap.DDMArticleToKumo(ddmArticle, ddmArticle.TradeItems[0]);
}
< /code>
Обновление: реализация DataMap < /p>
public static class DataMap
{
private static Dictionary language = TcposLanguageMapping;
private static Mapper _mapper;
public static Mapper InitializeAutomapper(TcposOptions options)
{
var shopType = ShopTypeDictionary;
var shopOwner = ShopOwnerDictionary;
var canton = CantonDictionary;
var config = new MapperConfiguration(cfg =>
{
cfg.CreateMap
()
.ForMember(dest => dest.Id, act => act.MapFrom(src => $"5{src.BranchIdentifier}"));
});
// Here the private member _mapper is initialized
_mapper = new Mapper(config);
return _mapper;
}
public static KumoArticle DDMArticleToKumo(DDMArticle article, TradeItem tradeItem)
{
// This line throws a NullReferenceException because _mapper has not been initialized
KumoArticle kumoArticle = _mapper.Map(article);
Подробнее здесь: [url]https://stackoverflow.com/questions/79670188/why-is-static-member-not-initialized-before-test-methods-are-run[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия