2012-04-23 3 views
0

У меня есть метод, как это:тестирования объектов, созданных внутри класса

public void ABC(ViewModeL model) 
    { 
     var dataTable = new DataTable(); 
     dataTable.Columns.Add("column1", typeof(int)); 
     dataTable.Columns.Add("column2", typeof(int));      
     var dr = dataTable.NewRow(); 
     dr["column1"] = 2; 
     dr["column2"] = 0; 
    } 

Я хочу утверждать на DataTable объекта, но я не могу понять, как сделать это, так как он создается внутри метод, а также он не возвращается этим методом. Можно ли протестировать его с помощью носорогов?

+0

Почему вы хотите утверждать DataTable, если у него нет связей с внешними вещами? –

+0

Потому что я добавляю в него материал, и я хочу знать, добавляются ли они в правильном порядке. –

+1

Это не вопрос модульного тестирования. Тесты модульных тестов ** что ** функция/объект делает, а не ** как ** они это делают. – MattDavey

ответ

0

Нет, это локальная переменная, которая имеет жизненный цикл ABC() метод scope. Таким образом, thsi невозможно с C# перспектив и даже неправильно с точки зрения тестирования модулей, поэтому вы не должны полагаться на детали реализации.

Возможно, вы предоставили не весь корпус метода с dataTable переменная будет умирать после выполнения ABC(), поэтому зачем вам ее проверять?

+0

Я вызываю другой метод, в котором я передаю объект dataTable изнутри моего метода. repository.InsertDataTable (DataTable); –

+0

, пожалуйста, покажите этот код – sll

+0

Эй, я реорганизовал свой код и создал защищенный метод, который вернет объект DataTable и протестировал его независимо, производя частичный макет. Спасибо, в любом случае.. :-) –

Смежные вопросы