Тестирование частных статических универсальных методов в C#C#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Тестирование частных статических универсальных методов в C#

Сообщение Anonymous »

Как тестировать частные статические универсальные методы? Внутренности видны в моем тестовом проекте. Как можно протестировать эти методы?

Код: Выделить всё

internal class Foo {

// Non-static.  This works!
private T TestThisMethod1(T value) {
Console.WriteLine("Called TestThisMethod1");
return value;
}

// Static.  Can't get this to work!
private static T TestThisMethod2(T value) {
Console.WriteLine("Called TestThisMethod2");
return value;
}

// Static.  Can't get this to work!
private static void TestThisMethod3(T value) {
Console.WriteLine("Called TestThisMethod3");
}

// Static.  Can't get this to work!
private static void TestThisMethod4(T value, T2 value2) {
Console.WriteLine("Called TestThisMethod4");
}
}
Первый пример работает. Это не статично. Это пример из https://msdn.microsoft.com/en-us/library/bb546207.aspx.

Код: Выделить всё

[TestMethod]
public void PrivateStaticGenericMethodTest() {

int value = 40;
var foo = new Foo();

// This works.  It's not static though.
PrivateObject privateObject = new PrivateObject(foo);
int result1 = (int)privateObject.Invoke("TestThisMethod1", new Type[] { typeof(int) }, new Object[] { value }, new Type[] { typeof(int) });

// Fails
int result2 = (int)privateObject.Invoke("TestThisMethod2",  BindingFlags.Static | BindingFlags.NonPublic, new Type[] { typeof(int) }, new Object[] { value }, new Type[] { typeof(int) });

// Fails
PrivateType privateType = new PrivateType(typeof(Foo));
int result2_1 = (int)privateType.InvokeStatic("TestThisMethod2", new Type[] { typeof(int) }, new Object[] { value }, new Type[] { typeof(int) });

// Fails
int result2_2 = (int)privateType.InvokeStatic("TestThisMethod2", BindingFlags.Static | BindingFlags.NonPublic, new Type[] { typeof(int) }, new Object[] { value }, new Type[] { typeof(int) });

// Stopping here.  I can't even get TestThisMethod2 to work...
}
Моя цель в написании на самом деле не состоит в том, чтобы подвергать сомнению или обсуждать преимущества тестирования частных методов: эта тема обсуждалась снова и снова. Более того, моя цель при написании вопроса состоит в том, чтобы сказать: «Это должно быть возможно сделать с помощью PrivateObject или PrivateType. Итак, как это можно сделать?»

Подробнее здесь: https://stackoverflow.com/questions/420 ... in-c-sharp
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Модульное тестирование частных методов в C#
    Anonymous » » в форуме C#
    0 Ответы
    9 Просмотры
    Последнее сообщение Anonymous
  • Модульное тестирование частных методов в C#
    Anonymous » » в форуме C#
    0 Ответы
    23 Просмотры
    Последнее сообщение Anonymous
  • API данных Youtube — получение частных и частных плейлистов
    Anonymous » » в форуме Php
    0 Ответы
    17 Просмотры
    Последнее сообщение Anonymous
  • API данных Youtube — получение частных и частных плейлистов
    Anonymous » » в форуме Php
    0 Ответы
    18 Просмотры
    Последнее сообщение Anonymous
  • API данных Youtube — получение частных и частных плейлистов
    Anonymous » » в форуме Php
    0 Ответы
    28 Просмотры
    Последнее сообщение Anonymous

Вернуться в «C#»