2010-07-17 2 views
1

Я кодирую некоторые модульные тесты и задаюсь вопросом, стоит ли заменить Typemock на пареметры?Параметры обмена с помощью typemock

Например, у меня есть метод, который опирается на объект, а в конструкторе этого объекта - некоторые сборки для анализа (массив строк).

Был ли я на правильном пути, чтобы издеваться над классом, содержащим метод, а затем передать мои собственные параметры? Но это само по себе имеет свои собственные накладные расходы. Не лучше ли было бы менять параметры тестируемого класса? Это возможно?

Наконец-то я понял, что если я хочу легко протестировать код, то вместо того, чтобы иметь переменные уровня метода, которые я хочу высмеять, они должны быть полями и, следовательно, доступны извне. Переменные набора конструкторов должны присваивать ссылки, которые являются полями. Согласны ли вы с этим?

Я знаю, что это может быть вопрос noobish, но я не слишком насмешливо.

Благодаря

ответ

0

Если вы выложите пример кода вы пытаетесь сделать я могу дать лучший ответ.
В принципе, вы хотите издеваться над классами, которые вы хотите игнорировать, поэтому в большинстве случаев вы можете передавать значение null или любое значение по умолчанию для поддельных методов, поскольку вам действительно не нужна реализация поддельных типов.
В редких случаях, когда вы хотите вызвать конструктор и передать аргументы, которые вы можете перегрузку
Isolate.Fake.Instance <>(), которая принимает в качестве параметров поведения конструктора по умолчанию и список аргументов для передачи

var fake = Isolate.Fake.Instance<Foo>(Members.ReturnRecursiveFakes, ConstructorWillBe.Called, BaseConstructorWillBe.Ignored, "First Argument", "Second argument"); 

О втором вопросе:
Первые поля не должны быть доступны извне, на самом деле сложнее подделать поля. вместо этого используйте свойства.
Во-вторых, используйте поля/свойства, если вам нужно сохранить состояние класса, отличного от локальных.

Смежные вопросы