Как другие сказали... не тестируют закрытые методы непосредственно. Вот несколько мыслей:
Выполнение покрытие кода на модульных тестах. Если Вы видите, что методы не полностью тестируются, добавляют к тестам для подъема покрытия. Стремитесь к 100%-му покрытию кода, но поймите, что Вы, вероятно, не получите его.
Вы могли бы попробовать создать своего рода класс ViewModel, принять решение о коде программной части, а затем довольствоваться своим ретранслятором, просто отображая данные, которые он дает.
Это способ отделить логику от пользовательского интерфейса. Затем у вас может быть тупой интерфейс, который просто отображает данные, без необходимости решать, что и как показывать.
Вы можете использовать видимость на стороне сервера:
<ItemTemplate>
<div runat="server" visible='<% (Container.DataItem("property") == "test") %>'>
I show this HTML
</div>
<div runat="server" visible='<% (Container.DataItem("property") != "test") %>'>
I show this other HTML
</div>
</ItemTemplate>
Вы можете сделать это с помощью пользовательских элементов управления:
<ItemTemplate>
<uc:Content1 runat='server' id='content1' visible='<%# Container.DataItem("property") == "test" %>'/>
<uc:Content2 runat='server' id='content2' visible='<%# Container.DataItem("property") != "test" %>'/>
</ItemTemplate>
Похоже, я перепутал это с фактической привязкой данных
Вы можете сделать это как так:
<asp:Repeater runat="server">
<ItemTemplate>
<% if (((Product)Container.DataItem).Enabled) { %>
buy it now!
<% } else {%>
come back later!
<% } %>
</ItemTemplate>
</asp:Repeater>