Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Unit testing 创建测试线束(单元测试)_Unit Testing_Testing_Nunit_Moq - Fatal编程技术网

Unit testing 创建测试线束(单元测试)

Unit testing 创建测试线束(单元测试),unit-testing,testing,nunit,moq,Unit Testing,Testing,Nunit,Moq,我必须在这个类上创建测试。有人能帮忙吗 public class Db { private System.Data.SqlClient.SqlConnection myConn; public Db(string connString) { myConn = new System.Data.SqlClient.SqlConnection(connString); } public bool Connected { get { return (myConn.State =

我必须在这个类上创建测试。有人能帮忙吗

public class Db    {
private System.Data.SqlClient.SqlConnection myConn;

public Db(string connString)
{
    myConn = new System.Data.SqlClient.SqlConnection(connString);
}

public bool Connected
{
    get { return (myConn.State == ConnectionState.Open); }
}

public void Connect()
{
    myConn.Open();
}

public void Disconnect()
{
    myConn.Close();
}
}
是,连接字符串可以作为构造函数参数传递

问候

Yahoo

您唯一的依赖性(SqlConnection)是不可注入的,所以首先要做的是至少有穷人的依赖项注入构造函数链接,允许SqlConnection作为参数传递。除此之外,我看到这个类除了充当连接的包装器外,几乎没有什么作用。我可能会将连接抽象为IDbConnection,并在需要时对其进行模拟,就像对Connected方法的测试类似于:

IDbConnection conn = mockery.CreateMock<IDbConnection>();
Expect.Call(connection.State).Return(ConnectionState.Open);

mockery.ReplayAll();

Assert.IsTrue(db.Connected);

mockery.VerifyAll();
IDbConnection conn=mockry.CreateMock();
Expect.Call(connection.State).Return(ConnectionState.Open);
嘲弄;
Assert.IsTrue(db.Connected);
mocky.VerifyAll();
连接/断开连接可以用类似的方式模拟。

您唯一的依赖性(SqlConnection)是不可注入的,所以首先要做的是至少有穷人的依赖项注入构造函数链接,允许SqlConnection作为参数传递。除此之外,我看到这个类除了充当连接的包装器外,几乎没有什么作用。我可能会将连接抽象为IDbConnection,并在需要时对其进行模拟,就像对Connected方法的测试类似于:

IDbConnection conn = mockery.CreateMock<IDbConnection>();
Expect.Call(connection.State).Return(ConnectionState.Open);

mockery.ReplayAll();

Assert.IsTrue(db.Connected);

mockery.VerifyAll();
IDbConnection conn=mockry.CreateMock();
Expect.Call(connection.State).Return(ConnectionState.Open);
嘲弄;
Assert.IsTrue(db.Connected);
mocky.VerifyAll();

连接/断开连接可以用类似的方式进行模拟。

目前该类上没有太多行为。如果你不打算增加更多的方法,你可以考虑在类DB上做提取接口并创建IDB接口。将其注入其他类并测试它们。不过,如果您计划将功能添加到类Db中,您可能希望对其进行测试。目前该类上没有太多行为。如果你不打算增加更多的方法,你可以考虑在类DB上做提取接口并创建IDB接口。将其注入其他类并测试它们。但是,如果您计划向类Db添加功能,您可能希望对其进行测试。您可能希望了解Moq、Rhino Mock或一种较新的隔离框架。录制/重播已不再受欢迎。您可能想看看Moq、Rhino Mock或更新的隔离框架。录音/重播已不受欢迎。