はい、可能ですが、それはベストプラクティスではない可能性があります。例えば 、テストクラスで
public class MyClass
{
IDependency _d;
public MyClass(IDependency d)
{
_d = d;
}
}
public class Dependency : IDependency
{
}
は、私はこのような何かを持つことができます。
[TestClass]
public class MyClassTests
{
MyClass _sut;
Mock<IDependency> _mockDependency;
Dependency _realDependency;
[TestInit]
public void Init()
{
var shouldUseMock = ConfigurationManager.AppSettings["key"];
if(shouldUseMock)
{
_mockDependency = new Mock<IDependency>();
_sut = new MyClass(_mockDependency.Object)
}
else
{
_realDependency = new Dependency();
_sut = new MyClass(_realDependency);
}
}
}
問題は、さまざまな状況に基づいて、期待を設定され、それはへのテストクラスがはるかに困難になり
維持する。むしろ、2つのテストを作成する必要があります。実際のユニットテストはmock
で行い、他の種類の統合テストは実際の実装で行います。
あなたが求めていることは私には分かりません。私はMoqの単体テストと "実際の"単体テストの区別は聞いたことがありません。あなたは精緻化できますか? –
あなたはもっと具体的でなければなりません。私は本当に何を話しているのか分かりません。 –
申し訳ありません。ユニットテストを実装するには2通りの方法があります。 1.私が使用しているMoqという特定のフレームワークを使用して結果を嘲笑します。 2.実際のユニットテストコール。実際のデータを取得するためにデータベースを直接呼び出します。 設定値を使って管理できる同じTestメソッドで両方を実装したいと思います。 1を設定してからMoqユニットテストを実行し、 を設定すると、実際のユニットテストが2に設定されます。 – ashwinrajagopal