快速提问,我正在使用Visual Studio的测试框架进行单元测试。只是想知道使用构造函数进行初始化工作与使用[TestInitialize()]属性的方法有什么区别?
答案 0 :(得分:10)
This post概述了不同的方法。如您所见,在ClassInitialize
之前(当然只有一次)和TestInitialize
之前会立即调用ctor。
所以在ClassInitialize
方法中放置需要TestInitialize
代码的内容。应该在ClassInitialize
之前设置的所有内容都在ctor中。
显然,TestInitialize
内容将在每次测试前执行一次。每次测试后关闭的相应方法是TestCleanup
。对于课程,请使用ClassCleanup
。程序集也存在同样的情况(AssemblyInitialize/Cleanup
)。
答案 1 :(得分:2)
ctor
用于初始化对象。
TestInitialize
用于初始化运行测试所需的任何对象或数据。
答案 2 :(得分:2)
从概念上讲,它们是相同的,因为MSTest会在每次测试执行之前创建测试类的新实例。但是,从技术上讲,存在一些差异:
TestContext
之前调用ctor(因为后者是一种实例方法,所以不足为奇)。TestInitialize
中的TestInitialize
。readonly
启用了更多继承方案:https://stackoverflow.com/a/8689398/67824。loginUser(email, password).then((token) => {
console.log("in then")
//ipcRenderer.send('login-success', token)
}).catch(err => {
console.log("in catch") //not running
})
个字段。我认为这非常重要:https://stackoverflow.com/a/45270180/67824。