면책 조항, 나는 Typemock에서 일합니다.
예외를 방지 할 수있는 방법해야 가짜 MyDataContext 이후의 모든 instatnces :
var fakeDC = Isolate.Fake.AllInstances<MyDataContext>();
그리고 다음의 MyFunction FO 동작() 설정 :
int? id = 10;
string name = "David";
Isolate.WhenCalled(() => fakeDC.MyFunction(id, name)).WithExactArguments().WillReturn(..);
그것은 MyDataContext의 모든 인스턴스가 될 것이라고 확신한다을 (프로그램의 모든 부분에서 새로운 MyDataContext()에 의해 생성됨), MyFunction() 비헤이비어도 위조됩니다.
난, 모든 세부 사항을 알고 더 이해를 위해 아래의 예를 확인하지 않기 때문에 :
internal class Foo
{
public Foo()
{
}
public int Bar()
{
var x = new MyDataContext();
return x.MyFunction(null, "5");
}
}
public class MyDataContext : DataContext
{
//
public int MyFunction(int? a, string b)
{
if(a == null)
{
throw new Exception();
}
return 0;
}
}
[TestMethod, Isolated]
public void TestMyDataContext()
{
//Arrange
var fakeDC = Isolate.Fake.AllInstances<MyDataContext>();
Isolate.WhenCalled(() => fakeDC.MyFunction(null, "5")).WithExactArguments().WillReturn(6);
//Act
var foo = new Foo();
var res = foo.Bar();
//Assert
Assert.AreEqual(6, res);
}
우리
docs의 모든 정보를 참조하십시오.
출처
2016-03-01 08:42:52
Eva
"작동하지 않음"은 오류에 대한 설명이 아닙니다. 무슨 일 이니? –
조롱하지 마십시오. 그것을 추상화하십시오 : http://bit.ly/gHLubu. – Steven