尝试执行登录方法的参数计数不匹配
Parameter count mismatch trying to execute login method
我的参数有问题,我想检查应用程序登录是否设置为 true,然后执行 LoginFirst 方法,但每次我尝试执行测试时都会收到此错误:
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();
}
这是我的执行方式:
[TestMethod]
public void DeleteDomainTest(bool loginFirst = true)
{
//Login
if (loginFirst)
{
LoginFirst();
}
//Execute delete domains function
}
DeleteDomainTest 方法执行以下操作:
首次登录
然后尝试删除域。
从评论来看,这里的问题是方法:
[TestMethod]
public void DeleteDomainTest(bool loginFirst = true) {...}
被标记为测试方法(通过属性),并且有一个参数,参数的原因是它在 "other methods in the application" 中被使用。测试框架希望测试方法是无参数的。
这表明测试方法存在根本性的误用。如果一个方法被其他代码使用,那么它不是测试方法。测试方法应该始终是独立的和顶级的。您应该能够通过稍微重构来简单地解决这个问题:
[TestMethod]
public void DeleteDomainTest() { DeleteDomainImpl(); }
internal void DeleteDomainImpl(bool loginFirst = true) {...}
现在我们有一个 DeleteDomainImpl
方法可以根据需要从其他测试中使用,还有一个 DeleteDomainTest
实际上是在这种情况下运行它的测试 - 使用默认参数。
我的参数有问题,我想检查应用程序登录是否设置为 true,然后执行 LoginFirst 方法,但每次我尝试执行测试时都会收到此错误:
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();
}
这是我的执行方式:
[TestMethod]
public void DeleteDomainTest(bool loginFirst = true)
{
//Login
if (loginFirst)
{
LoginFirst();
}
//Execute delete domains function
}
DeleteDomainTest 方法执行以下操作: 首次登录 然后尝试删除域。
从评论来看,这里的问题是方法:
[TestMethod]
public void DeleteDomainTest(bool loginFirst = true) {...}
被标记为测试方法(通过属性),并且有一个参数,参数的原因是它在 "other methods in the application" 中被使用。测试框架希望测试方法是无参数的。
这表明测试方法存在根本性的误用。如果一个方法被其他代码使用,那么它不是测试方法。测试方法应该始终是独立的和顶级的。您应该能够通过稍微重构来简单地解决这个问题:
[TestMethod]
public void DeleteDomainTest() { DeleteDomainImpl(); }
internal void DeleteDomainImpl(bool loginFirst = true) {...}
现在我们有一个 DeleteDomainImpl
方法可以根据需要从其他测试中使用,还有一个 DeleteDomainTest
实际上是在这种情况下运行它的测试 - 使用默认参数。