我的參數(shù)有問題,我想檢查 Application Login 如果它設(shè)置為 true,然后執(zhí)行 LoginFirst 方法,但是每次我嘗試執(zhí)行測試時我都會收到這個錯誤:Message: Test method AppNameWebMultiMap.Bader.DeleteDomain.DeleteDomainTest threw exception: System.Reflection.TargetParameterCountException: Parameter count mismatch.這是方法:[TestMethod]private void LoginFirst(){ var login = new AppLogin(); login.AppLoginBySaTest();}這是我執(zhí)行它的方式:[TestMethod] public void DeleteDomainTest(bool loginFirst = true) { //Login if (loginFirst) { LoginFirst(); } //Execute delete domains function }DeleteDomainTest 方法執(zhí)行以下操作:首先登錄,然后嘗試刪除域。
1 回答

慕尼黑5688855
TA貢獻(xiàn)1848條經(jīng)驗(yàn) 獲得超2個贊
從評論來看,這里的問題在于方法:
[TestMethod]
public void DeleteDomainTest(bool loginFirst = true) {...}
被標(biāo)記為測試方法(通過屬性),并有一個參數(shù),參數(shù)的原因是它是從“應(yīng)用程序中的其他方法”中使用的。測試框架希望測試方法是無參數(shù)的。
這表明測試方法存在根本性的誤用。如果一個方法被其他代碼使用,那么它就不是一個測試方法。測試方法應(yīng)該始終是獨(dú)立的和頂級的。您應(yīng)該能夠通過稍微重構(gòu)來解決這個問題:
[TestMethod]
public void DeleteDomainTest() { DeleteDomainImpl(); }
internal void DeleteDomainImpl(bool loginFirst = true) {...}
現(xiàn)在我們有了一個DeleteDomainImpl可以根據(jù)需要從其他測試中使用的方法,而DeleteDomainTest實(shí)際上是在這種情況下運(yùn)行它的測試 - 使用默認(rèn)參數(shù)。
- 1 回答
- 0 關(guān)注
- 201 瀏覽
添加回答
舉報(bào)
0/150
提交
取消