Я недавно слышал о тестировании на основе моделей и искал инструменты, которые могут следовать этому подходу.
В результате я нашел FsCheck .
На Экспериментальная страница, автор описывает, как создать тест на основе модели, который может быть выполнен.
Это все хорошо и все, но, к сожалению, я не понимаю, в чем будет разница между фактическим объектоми модель объекта.
Итак, учитывая следующий код:
using System;
using System.Collections.Generic;
using System.Text;
namespace SimpleOrderApp
{
public class Order
{
private string _name;
private string _description;
private bool _isOnOrderList;
public Order(string name, string description)
{
_name = name;
_description = description;
_isOnOrderList = false;
}
public string Name {
get => _name;
set
{
if (!_isOnOrderList)
{
return;
}
_name = value;
}
}
public string Description
{
get => _description;
set
{
if (!_isOnOrderList)
{
return;
}
_description = value;
}
}
public bool IsOnOrderList
{
get => _isOnOrderList;
set => _isOnOrderList = value;
}
}
}
Спецификация: - Пользователь может предоставить название заказа - Пользователь может предоставитьописание заказа - Пользователь не может обновить заказ, если он находится в OrderList (IsOnOrderList = true)
Ошибка:
Код
if (!_isOnOrderList)
{
return;
}
Не должен иметь!
.
Может ли кто-нибудь помочь мне сконструировать OrderModel
, который я могу использовать для проверки моего Order
объекта и объяснить мне, почему это нужно сделать?В настоящее время я очень хочу думать, что Order
и OrderModel
идентичны.
UPD:
Было бы правильно утверждать, что Модель имеет те же свойства тестируемого объекта, а значения просто жестко закодированы?