НУнит3. Был ли метод вызван в том же классеC#

Место общения программистов C#
Ответить
Anonymous
 НУнит3. Был ли метод вызван в том же классе

Сообщение Anonymous »

Я не могу создать тест, который проверит, был ли вызван метод или нет.
Я могу сделать это по-другому, например, проверить значения, но я хочу создать метод.У меня есть два метода в одном классе SomeService.cs

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

    public void Reset(DateTime currentTime)
{
var lastUpdate = GetLastUpdate();

if (ShouldReset(currentTime, lastUpdate)) // always true
ResetValues();
}

public void ResetValues()
{
//////
}
При отладке теста я обязательно нажимаю ResetValues

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

[Test, AutoMoqData]
public void Reset_ShouldReset_123(
[Frozen] Mock mockPreferences,
[Frozen] Mock mockSomeService)
{
var lastUpdate = new DateTime(2024, 11, 2, 23, 50, 0);
var currentTime = new DateTime(2024, 11, 3, 3, 00, 0);

mockPreferences
.Setup(p => p.Get(It.IsAny(), It.IsAny(), null))
.Returns(lastUpdate);

var someService= new SomeService(mockPreferences.Object, default!, default!,
default!, default!);
someService.Reset(currentTime);

mockSomeService.Verify(x=>x.ResetValues(), Times.Once);
}

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

Expected invocation on the mock once, but was 0 times: x => x.ResetValues()
что я делаю не так?
Я пытаюсь написать тест, который проверяет, был ли вызван метод

Подробнее здесь: https://stackoverflow.com/questions/791 ... same-class
Ответить

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

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

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

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

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