2011-10-28 50 views
5

Tôi đã tạo ra một dịch vụ WCF và đã cố gắng để kiểm tra một trong những phương pháp. Tôi đã nhấp chuột phải vào phương pháp dịch vụ WCF và chọn thử nghiệm đơn vị tạo ra.Đơn vị kiểm tra phương pháp WCF

Nó tạo ra một dự án thử nghiệm mới và tạo ra một bài kiểm tra đơn vị.

Tôi đã cố gắng chạy dự án thử nghiệm nhưng tôi không chắc giá trị UrlToTest là gì? Tôi đã đặt url vào dịch vụ.

[TestMethod()] 
[HostType("ASP.NET")] 
[AspNetDevelopmentServerHost("C:\\VS Projects\\NetBranch4\\" + 
    "MobileCheckCapture\\MobileCheckCapture", "/")] 
// [UrlToTest("http://localhost:45651/")] 
[UrlToTest("http://localhost/mobilecc/mobilecc.svc")] 
public void AuthenticateUserTest() 
{ 
    // TODO: Initialize to an appropriate value 
    MobileCC target = new MobileCC(); 

    // TODO: Initialize to an appropriate value 
    string authenticateRequest = string.Empty; 

    // TODO: Initialize to an appropriate value 
    string expected = string.Empty; 
    string actual; 
    actual = target.AuthenticateUser(authenticateRequest); 
    Assert.AreEqual(expected, actual); 
    Assert.Inconclusive("Verify the correctness of this test method."); 
} 

Trả lời

3

HostType, AspNetDevelopmentServerHost và UrlToTest là các tham số được sử dụng cho ASP.NET UnitTest, chứ không phải WCF. Chỉ cần bình luận các thuộc tính đó, thiết lập các tham số đầu vào của bạn và xác nhận và chạy thử nghiệm.

[TestMethod()] 
public void AuthenticateUserTest() 
{  
    MobileCC target = new MobileCC(); // TODO: Initialize to an appropriate value 
    string authenticateRequest = string.Empty; // TODO: Initialize to an appropriate value 
    string expected = string.Empty; // TODO: Initialize to an appropriate value  string actual; 
    actual = target.AuthenticateUser(authenticateRequest); 
    Assert.AreEqual(expected, actual); 
    Assert.Inconclusive("Verify the correctness of this test method."); 
} 

Hy vọng điều này sẽ hữu ích.

+0

Cảm ơn bạn nó hoạt động bây giờ nhưng tôi đã đặt một điểm break trên thực tế target = .AuthenticateUser (authenticateRequest); nó không phá vỡ và để tôi debug phương thức wcf – user228777

+0

Vào Test trong VS Menu, chọn "Debug -> Test in Current Context". Ngoài ra còn có các tùy chọn để chạy Test trong thanh công cụ Test Tools trong VS. –

+0

Tôi không thấy tùy chọn Kiểm tra trong ngữ cảnh hiện tại trong menu gỡ lỗi, Tôi có cần phải đi trong các tùy chọn để thiết lập không? thanks – user228777

4

Bạn nên tự tay thực hiện các bài kiểm tra của riêng mình thay vì phải tạo VS cho bạn. Chỉ cần mới lên các dịch vụ như thể nó là một lớp bình thường bên trong thử nghiệm của bạn và gọi chức năng, khẳng định đối với giá trị bạn mong đợi trở lại. Tất cả các dịch vụ WCF của tôi đều được kiểm tra như các lớp bình thường, bây giờ thực sự kết nối với dịch vụ và nhận được câu trả lời là nhiều kiểm thử tích hợp hơn như kết nối và đảm bảo các điểm cuối là chính xác không liên quan đến kiểm tra logic của dịch vụ.

ETA: Tôi kiểm tra logic trước vì có nhiều vấn đề về kết nối, vấn đề tường lửa, vv có thể mất thời gian để giải quyết các dịch vụ WCF và tôi dự trữ thử nghiệm cuối cùng.

0

Để chạy thành công phương pháp thử nghiệm cho dịch vụ web, bạn nên xóa thuộc tính [HostType("ASP.NET")]. Ngoài ra UrlToTest chỉ được chứa URL cho ứng dụng web chứ không phải tệp SVC. Ngoài ra phương pháp thử nghiệm chỉ cần AspNetDevelopmentServer trong một số trường hợp cụ thể.

Nếu bạn lưu trữ bạn SVC trên IIS địa phương, các quy tắc kiểm tra-method sẽ tương tự như:

[TestMethod()] 
[UrlToTest("http://localhost/ServiceApp")] 
public void ServiceTest() 
{ 
    WcfService target = new WcfService(); 
    string arg = "test"; 
    Response actual = target.DoSmth(arg); 

    Assert.IsTrue(actual != null); 
} 
Các vấn đề liên quan