Я думаю, что ваши настройки выполнены в неправильном порядке, и это приводит к тому, что настройка не действительна в первом тестовом запуске, а затем во втором тестовом запуске this.testObj = new DiplomacyLogic(this.mockAllianceController.Object);
уже создан и установка инициализирована.Это означает, что вы должны инициализировать DiplomacyLogic
перед настройкой, чтобы получить желаемый результат.
Я также включил код разрыва, чтобы вы получали свежие объекты для каждого теста, это хорошая практика, чтобы тесты не зависели отeachother.
попробуйте приведенный ниже код.
[Setup]
public void Setup()
{
this.mockAllianceController = new Mock<AllianceController>();
this.testObj = new DiplomacyLogic(this.mockAllianceController.Object);
this.mockAllianceController.Setup(ac => ac.getAllies(this.currentRealm)).Returns(new List<string>());
}
[TearDown]
public void TearDown()
{
this.mockAllianceController = null;
this.testObj = null;
}
Я также считаю, что код установки должен быть в тестовом методе, гарантированном для установки, и что из-за других тестов, которые вы можете написать, возможно, не будетиспользуйте ту же настройку только для этого метода.