2012-04-30 20 views

Trả lời

12

Khi chức năng xác minh không được bao gồm trong bản Beta Beta của Microsoft, mã bên dưới là một thử nghiệm cơ bản cho dù phương thức phụ thuộc có được gọi hay không. Bạn có thể tăng cường kiểm tra true để kiểm tra các giá trị tham số hoặc các điều kiện khác của cuộc gọi thích hợp.

Test:

[TestMethod] 
public void TestMethod1() 
{ 
    var secondDoItCalled = false; 
    var secondStub = new Fakes.ShimSecond(); 
    secondStub.DoIt =() => { secondDoItCalled = true; }; 
    var first = new First(secondStub); 
    first.DoIt(); 
    Assert.IsTrue(secondDoItCalled); 
} 

Lớp học:

public class First 
{ 
    readonly Second _second; 
    public First(Second second) { _second = second; } 
    public void DoIt() { 
     //_second.DoIt(); 
    } 
} 

public class Second {public void DoIt(){}} 

Bỏ ghi chú những dòng trên để xem qua bài kiểm tra.

8

Một tùy chọn khác mà bạn có để thực hiện xác minh hành vi với khung Microsoft Fakes là sử dụng lớp StubObserver có trong không gian tên Microsoft.QualityTools.Testing.Fakes.Stubs. Sử dụng khung công tác, bạn tạo ra một nhánh cho sự phụ thuộc của bạn. Sau đó, trên Stub của bạn, bạn có thể đặt thuộc tính InstanceObserver thành một StubObserver mới. Sử dụng lớp StubObserver, bạn có thể "truy vấn" các cuộc gọi phương thức được thực hiện cho sự phụ thuộc của bạn. Phương pháp thử nghiệm của bạn sẽ giống như dưới đây

//Arrange 
var dependency = new StubIDependency { InstanceObserver = new StubObserver() }; 
var sut = new SystemClass(dependency); 

// Act 
sut.DoSomething(); 

// Assert 
var observer = (StubObserver)dependency.InstanceObserver;  
Assert.IsTrue(
    observer.GetCalls().Any(call => call.StubbedMethod.Name == "DoSomething")); 
+0

Có thể áp dụng bằng cách nào đó để trường hợp của shimming bởi 'AllInstances'? – SerG

Các vấn đề liên quan