Обмен параметров с помощью typemock - PullRequest
1 голос
/ 18 июля 2010

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

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

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

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

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

Спасибо

1 Ответ

0 голосов
/ 23 июля 2010

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

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

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

...