Есть ли лучший способ имитировать работу в модульных тестах? [закрыто]C#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Есть ли лучший способ имитировать работу в модульных тестах? [закрыто]

Сообщение Anonymous »

Моя компания, наконец, начинает вводить модульные тесты.
. Во время прохождения некоторых новых тестов я наткнулся на это: < /p>

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

[Test]
public void GetCorrectTimeoutInfoFromTimeSpan()
{
// Arrange
bool preTimeout;
bool postTimeout;
double random = new Random().NextDouble();
TimeoutHandler timeoutHandler;

// Act
timeoutHandler = new TimeoutHandler(TimeSpan.FromMilliseconds(1));
preTimeout = timeoutHandler.IsTimeout;
while(!timeoutHandler.IsTimeout)
{
// Simulate some work
random = Math.Sin(random) * Math.Cos(random);
}
GC.KeepAlive(random);
postTimeout = timeoutHandler.IsTimeout;

// Assert
Assert.Multiple(() =>
{
Assert.That(preTimeout, Is.False);
Assert.That(postTimeout, Is.True);
});
}
< /code>
переменная случайная случайность только для моделирования некоторой работы, обеспечивающей не быть «оптимизированным» через gc.keepalive (). Поскольку это будет использоваться повторно во многих различных ситуациях, когда нам нужно имитировать работу, я хотел посмотреть, есть ли лучше/более чистый способ.
вне головы, я бы подумал, что что-то подобное может сработать 
{...}
double? rnd = null;
while(!timeoutHandler.IsTimeout)
rnd = SimulateWork(rnd);
{...}

public static double SimulateWork(double? rnd = null)
{
rnd ??= new Random().NextDouble();
return Math.Sin(rnd.Value) * Math.Cos(rnd.Value);
}
Это разделяет зависимость для случайных значений, и, насколько я знаю, C# должен сохранить этот код, как есть, чтобы сделать конкретный призыв для коллекционера мусора.>

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

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Есть ли лучший способ имитировать работу в модульных тестах? [закрыто]
    Anonymous » » в форуме C#
    0 Ответы
    1 Просмотры
    Последнее сообщение Anonymous
  • Есть ли лучший способ имитировать работу в модульных тестах?
    Anonymous » » в форуме C#
    0 Ответы
    4 Просмотры
    Последнее сообщение Anonymous
  • Есть ли лучший способ имитировать работу в модульных тестах?
    Anonymous » » в форуме C#
    0 Ответы
    4 Просмотры
    Последнее сообщение Anonymous
  • Как имитировать метод поиска репозитория JPA в модульных тестах
    Anonymous » » в форуме JAVA
    0 Ответы
    10 Просмотры
    Последнее сообщение Anonymous
  • Как имитировать/имитировать события очереди Laravel в тестах?
    Anonymous » » в форуме Php
    0 Ответы
    33 Просмотры
    Последнее сообщение Anonymous

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