Создание тестируемого объекта в конструкторе класса unit-тестов?

Здравствуйте. Есть метод, создающий коллекцию объектов из входящей строки. Если при unit-тестировании получить коллекцию и сохранить её в конструкторе, а в тест-методах только вызывать assert'ы, проверяющие объекты в коллекции, то это будет считаться плохой практикой?

public class Test
  {
    private List<T> collection;

    public Test()
    {
      collection = Foo("const"); // тестируемая функция
    }
        

    [Fact]
    public void CollectionIsNotNull()
    {
      Assert.NotNull(collection);
    }    
    // остальные тесты
  }
  • Вопрос задан
  • 97 просмотров
Решения вопроса 1
user_of_toster
@user_of_toster
В js/ts есть похожая практика, когда в блоке beforeAll() устанавливаются нужные для связанных по концепции тестов компоненты, а потом сами тесты выходят в одну-две строки и состоят только из assert'ов. Имхо, помогает соблюдать DRY и ничего плохого в этом нет
describe("My class", () => {
     let myMock, myFunc, myClass;
     beforeAll(() => {
         /// здесь устанавливаю моки, впрыскиваю зависимости и т.д;
     })

     test("mock works well with numbers", () => {
          assert(myMock).worksWellwithStrings()
     })

     test("class works well with numbers", () => {
          assert(myClass).worksWellWithMocks()
     })

     test("instance works well with numbers", () => {
          assert(myInstance).worksWell()
     })
})
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы