【发布时间】:2020-04-26 20:32:31
【问题描述】:
我有一个 C# 应用程序(它是一个 Cocoa 应用程序),我需要使用 NUnit 和 Moq 测试视图/控制器,这有点困难。更确切地说,我有一个分层应用程序,连接到 sqlite-net 数据库。我想测试 add 方法。这是我的一张桌子:
public class User
{
[PrimaryKey, AutoIncrement]
public int ID { get; set; }
public String email { get; set; }
public String password { get; set;
}
我为此创建了一个 DBContext,我在其中创建了数据库、表并连接到数据库。作为一个分层的应用程序,我还有 UserRepo 和 UserBusinessLogic,我可以在其中进行所有查询。我的问题是,如何测试 addUser 操作?我需要提一下我正在使用 sqlite-pcl-net 作为数据库框架。 我已经试过了:
var mock = new Mock<IUserBLL>();
User user = new User
{
email = "a@yahoo.com",
password = "1234",
};
var controller = new CreateController(mock.Object);
但是在尝试创建控制器时,我的测试失败并出现空异常。我正在考虑模拟设置?这是我的控制器:
public partial class CreateController : NSViewController
{
IUserBLL userBLL;
public CreateAccountController(IntPtr handle) : base(handle)
{
Initialize();
userBLL = new UserBLL();
}
/* I AM USING THIS ONE */
public CreateAccountController(IUserBLL userBLL) : base()
{
Initialize();
this.userBLL = userBLL;
}
我需要测试控制器及其方法,而不仅仅是数据库中的方法。
【问题讨论】: