Я пытаюсь выполнить тестирование на заказ ConfigurationElementCollection
, но у меня возникла проблема с программным обеспечением заполнения коллекции. Когда я звоню BaseAdd()
, я получаю следующее исключение:Как программно добавлять элементы в ConfigurationElementCollection?
ConfigurationErrorsException: Элемент 'add' был заблокирован в конфигурации более высокого уровня.
Однако эта проблема возникает только при выполнении нескольких тестов. Рассмотрим эти два теста:
private Fixture Fixtures = new Fixture(); // AutoFixtures
[Test]
public void test1()
{
var tc = Fixtures.CreateAnonymous<TenantCollection>();
var t = Fixtures.CreateAnonymous<Tenant>();
tc.Add(t);
}
[Test]
public void test2()
{
var tc = Fixtures.CreateAnonymous<TenantCollection>();
var t = Fixtures.CreateAnonymous<Tenant>();
tc.Add(t);
}
Каждый отдельный тест проходит, когда выполняется один. При запуске вместе генерируется исключение блокировки.
Что здесь происходит? Как я могу разблокировать коллекцию или обойти эту блокировку?
Вы также можете переопределить метод IsReadOnly из своей реализации TenantCollection и вернуть false –