Мне нужно добавить в модель метод, который с учетом некоторых параметров присваивает значение одному из полей модели.
public class ModelName: SomeModel<ModelName>, IModelName
{
[Field]
public string SomeField{ get; set; }
[Field]
public string FieldSetByMethod{ get; set; }
public new async Task MethodToSetField(string parameter)
{
var someClassInstance = new SomeExternalClass(parameter);
FieldSetByMethod = someClassInstance(parameter).method();
}
}
Теперь, когда я пишу модульные тесты и хочу иметь способ проверить, что этот MethodToSetField
был вызван. Однако на самом деле я не могу вызвать метод MethodToSetField
, поскольку создание SomeExternalClass
нежелательно (например, потому что он создает уникальный идентификатор).
У меня нет опыта ни с C#, ни с Moq. Как я могу издеваться над этой функцией, чтобы она велась примерно так:
ModelNameInstance.Setup(c => c.MethodToSetField("Parameter")).Assigns(FieldSetByMethod,"DummyValue");
Или, может быть, я могу каким-то образом реструктурировать тесты кода / записи таким образом, чтобы имитировать это поведение?