Tôi đã viết một số bài kiểm tra đơn vị cơ sở dữ liệu tSQLt (qua Red Gate SQL Test) về các thủ tục gọi các cột có chứa (đã tồn tại) được tính toán gần đây và lưu ý rằng nếu tôi sử dụng FakeTable SP, Tôi thấy rằng các cột được tính toán không được điền (chúng được đánh giá là rỗng). Cột được tính toán là chìa khóa để thử nghiệm, vì vậy tôi không thể bỏ qua cột trong thử nghiệm và tôi không muốn sao chép logic.Kiểm thử đơn vị với tSQLt trên các cột được tính toán
Tôi đang đánh giá kết quả bằng cách sử dụng tSQLt.AssertEqualsTable SP và vì vậy tôi muốn đảm bảo các giá trị cột giống nhau trong cả hai. Trong thực tế, tôi đã giải quyết vấn đề này bằng cách không sử dụng FakeTable, nhưng bằng cách sử dụng câu lệnh giao dịch rollback (một phần) ở cuối bài kiểm tra (mỗi bài đăng trên blog ở số http://sqlity.net/en/585/how-to-rollback-in-procedures/) hoặc xóa các giá trị thử nghiệm một cách rõ ràng.
Tôi chắc chắn phải có cách tốt hơn để mã hóa kiểm tra này và sẽ hoan nghênh mọi đề xuất.
Cảm ơn Sabastian, điều đó rất hữu ích. Tôi đã cố gắng kết hợp hai bài kiểm tra, nhưng khi bạn chỉ ra đây là những bài kiểm tra khác nhau. – DaveGreen