Лично я бы пошел с частными методами, и я скажу вам, почему.Вы выставляете ICommand
, что для меня говорит, что представление потребления должно вызывать CanExecute до вызова Execute.Если они этого не делают, они идут против API и стреляют себе в ногу, и в этот момент это не в ваших руках.Точно так же, как если бы кто-то использовал рефлексию для установки важной закрытой переменной на нуль и нарушил ваш классовый дизайн из-за этого ... стрелял себе в ногу.Так зачем делать членов приватными?Поскольку нет необходимости выставлять члены, которые не должны вызываться напрямую.
По сути, когда вы тестируете элементы, которые вы не делаете индивидуально, вы делаете это так, как API предназначается длячлены должны быть казнены.Таким образом, вы на самом деле не тестируете участников, а, кроме того, тестируете команду, что снова означает, что они должны тестироваться в паре в определенном порядке:
if (CanExecute)
{
Execute;
}