2011-11-16 30 views
5

Tìm kiếm một số lời khuyên về cách tiến hành tại đây.Thử nghiệm tích hợp Các dịch vụ WCF được Chained với Cơ sở dữ liệu Kiểm tra

Tôi đang cố thực hiện một số thử nghiệm tích hợp trên các dịch vụ wcf gọi các dịch vụ wcf khác. Tôi muốn đảm bảo rằng chúng được cấu hình chính xác giữa nhau. Chúng tôi hiện đang sử dụng spring.net và Nhibernate. Những gì tôi không chắc chắn về là làm thế nào để kiểm tra xem cơ sở dữ liệu có được cập nhật mà không thực sự lưu bất cứ thứ gì vào cơ sở dữ liệu hay không.

Tôi có cả dịch vụ msmq và wshttp mà tôi đang cố kiểm tra tại đây. Tôi quen thuộc với các giao dịch, khi chúng ta sử dụng chúng vào mùa xuân, nhưng tôi không có ý tưởng làm thế nào để thiết lập các thử nghiệm của mình để khôi phục giao dịch trong một dịch vụ không được thử nghiệm trực tiếp bởi kiểm thử tích hợp.

Ngay bây giờ tùy chọn duy nhất tôi đã đưa ra là sử dụng cơ sở dữ liệu thử nghiệm và dữ liệu thử nghiệm, nhưng có vẻ như phải có giải pháp tốt hơn điều này.

+3

Tại sao bạn muốn ** thử nghiệm ** phần mềm của bạn trên cơ sở dữ liệu ** production **, thay vì cơ sở dữ liệu ** test **? – CodeCaster

+0

Có thể bạn đã hiểu sai tôi? Tùy chọn duy nhất tôi đã đưa ra cho đến nay là tạo ra một cơ sở dữ liệu thử nghiệm và dữ liệu thử nghiệm. –

+1

Bạn có thể thiết lập tất cả các dịch vụ của mình để sử dụng cùng một cơ sở dữ liệu và chia sẻ cùng một 'SessionFactory' không? – Marijn

Trả lời

0

Tôi quyết định thực hiện một ứng dụng cụ thể. Về cơ bản tạo ra một cơ sở dữ liệu thử nghiệm và ứng dụng của chúng tôi nhấn vào cơ sở dữ liệu thử nghiệm dựa trên một số giá trị được chuyển vào dịch vụ của chúng tôi.

0

Có lẽ bạn có thể giả lập các dịch vụ cập nhật cơ sở dữ liệu (hoặc lớp DAL) bằng cách sử dụng một cái gì đó như Moq, tránh cuộc gọi đến cơ sở dữ liệu và kiểm tra bằng phương pháp xác minh của giả thiết rằng cuộc gọi đến cơ sở dữ liệu sẽ được thực hiện. Trong dự án của chúng tôi, chúng tôi đang sử dụng thư viện này với wcf với kết quả rất tốt.

+0

Đây là một ý tưởng hay nếu bạn muốn kiểm tra xem các dịch vụ có được nối đúng cách hay không, nhưng điều này sẽ không thực sự xác nhận rằng sql thích hợp được gửi đến cơ sở dữ liệu. Và tôi nghĩ đây là mục đích của OP. – Marijn

+0

Có lẽ chế nhạo lớp truy cập dữ liệu thay vì các dịch vụ wcf sẽ thực hiện thủ thuật. Tôi không biết làm thế nào điều này được thực hiện, nhưng nếu lớp như vậy tồn tại nó rất dễ dàng để xem nếu sql thích hợp sẽ được thực thi mà không thực hiện nó. – Diego

+0

Có, tôi làm điều này khi kiểm tra các giao diện. Nhưng không có cách nào để thực hiện bất kỳ mocks trên dịch vụ đó là gián tiếp được gọi là. –

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