我使用HttpSelfHostServer
构建一个使用SQLite数据库的RESTful API。
我使用Moq
程序集来模拟我的数据库。
使用Nunit
我使用TestFixture
方法编写SetUp
,构造MockDatabaseContext
。我有几个测试,使用这个MockDatabaseContext
。
现在我想在测试项目的所有测试中使用MockDatabaseContext
。
我读过文章说:
“...任何命名空间之外的SetUpFixture都提供SetUp和 TearDown为整个组件......“
我将SetUp
方法移动到另一个类Init
,该类放在非命名空间中,并将属性更改为OneTimeSetUp
。在我按照自己的意愿运行程序集中的所有测试之前,该设置的方法只运行了一次。
但是OneTimeSetUp
方法构造MockDatabaseContext
在非静态Init
类中。 如何将创建的MockDatabaseContext
传递给所有其他测试,这些测试都是在OneTimeSetUp
之后开始的?
[SetUpFixture]
public class Init
{
public Mock<MyDBContext> MockDatabaseContext
[OneTimeSetUp]
public void OneTimeSetUpMethod()
{
MockDatabaseContext = SomeFunctionConstructsMockedContext();
}
}
namespace All.My.Tests
{
[TestFixture]
public class TestFixture1
{
[TestCase]
public void Test1() {/* Here i want to be able using MockDatabaseContext */}
public void Test2() {/* Here i want to be able using MockDatabaseContext */}
public void Test3() {/* Here i want to be able using MockDatabaseContext */}
}
/* Some other fixtures with tests that must have MockDatabaseContext */
}
感谢名单