Tôi là using Microsoft.VisualStudio.TestTools.UnitTesting;
nhưng phương pháp tôi đánh dấu là [TestInitialize] không được gọi trước khi thử nghiệm. Tôi chưa bao giờ sử dụng khung kiểm thử đặc biệt này trước đây nhưng trong mọi khung công tác khác luôn có cách đăng ký một phương thức Thiết lập và TearDown sẽ tự động chạy trước và sau mỗi lần thử nghiệm duy nhất. Đây không phải là trường hợp với các công cụ kiểm tra trực quan đơn vị kiểm tra khuôn khổ?tại sao TestInitialize không được gọi tự động?
[TestClass]
public class RepoTest
{
private const string TestConnectionString = @"Server=localhost\SQL2014EXPRESS64; Database=RepoTest; Trusted_Connection=True;";
private const string MasterConnectionString = @"Server=localhost\SQL2014EXPRESS64; Database=master; Trusted_Connection=True;";
[TestInitialize]
private void Initialize()
{
using(var connection = new SqlConnection(MasterConnectionString))
using(var command = new SqlCommand(Resources.Initialize, connection))
{
command.ExecuteNonQuery();
}
}
[TestCleanup]
private void Cleanup()
{
using (var connection = new SqlConnection(MasterConnectionString))
using (var command = new SqlCommand(Resources.Cleanup, connection))
{
command.ExecuteNonQuery();
}
}
[TestMethod]
public void CreateARepo()
{
var repo = new Repo(TestConnectionString);
}
}
Có thể cần phải công khai. –