Вопрос

Какими способами можно проверить SampleconFirmationDialog Be Unit? SampleconFirmationDialog будет осуществляться с помощью приемочных испытаний, однако, как мы могли установить ее, чтобы проверить его, видя, когда MessageBox не является абстрактным и не соответствующим интерфейсом?

public interface IConfirmationDialog
{
    /// <summary>
    /// Confirms the dialog with the user
    /// </summary>
    /// <returns>True if confirmed, false if not, null if cancelled</returns>
    bool? Confirm();
}


/// <summary>
/// Implementation of a confirmation dialog
/// </summary>
public class SampleConfirmationDialog : IConfirmationDialog
{
    /// <summary>
    /// Confirms the dialog with the user
    /// </summary>
    /// <returns>True if confirmed, false if not, null if cancelled</returns>
    public bool? Confirm()
    {
        return MessageBox.Show("do operation x?", "title", MessageBoxButton.YesNo, MessageBoxImage.Question) == MessageBoxResult.Yes;
    }
}
Это было полезно?

Решение

Вы не можете, это беспомощно в нынешнем состоянии. Для этого конкретного класса также нет значения в модульном тестировании этого ... это всего лишь легкая обертка вокруг встроенной рамки, поэтому все, что вы будете делать, это тестирование структуры.

Если вы абсолютно должны проверить его, интерфейс IconFirmationDialog должен иметь другую зависимость, которую вы можете издеваться в тесте устройства.

Другие советы

Вы должны посмотреть на Tymock, коммерческую структуру издевательства, которая позволяет вам тестировать эти виды ситуаций, используя библиотеки профилирования производительности .NET. Видеть их сайт Чтобы получить больше информации.

Я думаю, что все в порядке, чтобы перестать тестировать его на этом уровне. Ваше взаимодействие с IConfirmationDialog важнее, чем проверка того, что MessageBox.Show на самом деле вызывается. Поскольку это интерфейс и легко издевается, я думаю, что вы довольно хорошо освещены.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top