2
FakeItEasy로 테스트중인 클래스를 생성 할 수 있습니까? 생성자에서 선언 된 모든 종속성이 가짜로 자동 초기화됩니까? 내가 테스트 설정에서 모든 가짜 객체를 생성하고 그 다음클래스 만들기 및 FakeItEasy로 종속성 자동 초기화
public class Inserting
{
public Inserting(
ITransactionService transactionService,
ISharedData sharedData)
{
TransactionService = transactionService;
SharedData = sharedData;
}
public ITransactionService TransactionService { get; }
public ISharedData SharedData { get; }
public void Enter()
{
TransactionService.StartTransaction();
}
}
그 가짜로 테스트중인 내 수업을 구성 :
클래스를 상상해
public class InsertingTest
{
private Inserting _inserting;
private ISharedData _fakeSharedData;
private ITransactionService _fakeTransactionService;
[SetUp]
public void SetUp()
{
_fakeTransactionService = A.Fake<ITransactionService>();
_fakeSharedData = A.Fake<ISharedData>();
_inserting = new Inserting(_fakeTransactionService, _fakeSharedData);
}
[Test]
public void TestEnter()
{
// Arrange
// Act
_inserting.Enter();
// Assert
A.CallTo(() => _fakeTransactionService.StartTransaction().MustHaveHappened();
}
}
하지만 자바에서 본 - 세계, Mockito와 단검 (2)를 사용하는 경우,이 같은 것을 할 수있는 :
public class PhoneDialer {
private Activity activity;
private PhoneCallListener phoneCallListener;
@Inject
public PhoneDialer(Activity activity, PhoneCallListener phoneCallListener) {
this.activity = activity;
this.phoneCallListener = phoneCallListener;
}
}
public class PhoneDialerTest {
@Rule
public MockitoRule mockitoRule = MockitoJUnit.rule();
@Mock
PhoneCallListener phoneCallListener;
@Mock
Activity activity;
@InjectMocks
PhoneDialer dialer;
@Test
public void test_dialer() throws Exception {
// Arrange
// Act
dialer.callNumber("abc");
// Assert
Mockito.verify(phoneCallListener, times(1)).startCall();
}
}
를하고 조롱 C lasses는 자동으로 가짜로 초기화됩니다. 거기에 상응하는 프로 시저 또는 기능이 C#에서 FakeItEasy와 함께 있나요?
예 Ohhhhh! 그게 정확히 내가 찾고 있던 것이 었습니다. 문서에 넣으십시오. –
음, 적어도 [issue 964] (https://github.com/FakeItEasy/FakeItEasy/issues/964)를 만들었습니다. –