使用Assert.ThrowsExactly或Assert.ThrowsExactlyAsync而不是Assert.ThrowsException或Assert.ThrowsExceptionAsync。 何时禁止显示警告 不禁止显示此规则发出的警告。 强烈建议从旧 API 迁移到新 API。 在GitHub 上与我们协作 可以在 GitHub 上找到此内容的源,还可以在其中创建和查看问题和拉取请求。 有关详细信息,请参...
MSTestで例外をテストする(Assert.ThrowsException) 最新のMSTestのバージョンではAssert.ThrowsExceptionを使うのが良いようです。 [TestMethod]publicvoidTestInvalidUserNameLengthMin(){varuserFactory=newInMemoryUserFactory();varuserRepository=newInMemoryUserRepository();varuserService=newUserService(userRepos...
模拟StackOverflowException:在测试方法中,通过模拟递归调用或无限循环的情况,触发StackOverflowException。 捕获异常并断言:使用MSTest的断言方法,捕获并验证是否抛出了StackOverflowException。例如,可以使用Assert.ThrowsException方法来断言是否抛出了指定类型的异常。 执行测试:在Visual Studio中执行测试,查看测试结果是...
MSTest现在允许您通过以下方式测试某段代码是否抛出了某一种异常类型: Assert.ThrowsException<MyException>(() => foo.Bar()); 但是,我需要一种更灵活的异常测试;我不仅需要测试异常的类型,还需要检查其消息是否以某个字符串开头(而不是与异常字符串完全匹配)。有没有办法可以用MSTest做到这一点?如果没有...
/// Like Assert.Throws in NUnit. /// /// The action to execute /// <returns>The exception thrown by the action</returns> publicstaticException Throws(Action action) { returnThrows(action,null); } /// /// Executes an exception, expecting...
ExpectedException属性定义测试方法应引发的异常。 如果引发预期的异常并且异常消息与预期消息匹配,则测试通过。 警告 保留此属性是为了后向兼容,不建议用于新测试。 请改用Assert.ThrowsException方法(如果使用 MSTest 3.8 及更高版本,请改用Assert.ThrowsExactly)。
public static Exception Throws(Action action) 1. { 1. return Throws(action, null); 1. } 1. /// 1. /// Executes an exception, expecting an exception to be thrown. 1. /// Like Assert.Throws in NUnit. 1. /// 1. /// The action...
首选Assert.ThrowsException 或Assert.ThrowsExceptionAsync 而不是 [ExpectedException] 属性,因为它会确保只有预期的代码行会引发预期的异常,而不是对测试的整个正文执行操作。 断言 API 还提供更大的灵活性,且允许断言异常的额外属性。C# 复制 [TestClass] public class TestClass { [TestMethod] [Expected...
Assert.AreEqual(sum, n1+n2); } 也可以指定多组参数,测试就会执行多次用例。在MS TEST V2的版本中,还可以通过ITestDataSource接口实现自定义数据源。 异常测试: 异常下现在也和xunit一样采用断言的方式捕获了。 publicvoidTestException() { Assert.ThrowsException<InvalidOperationException>(() =>foo());void...
public void TestException() { Assert.ThrowsException<InvalidOperationException>(() => foo()); void foo() { throw new InvalidOperationException(); } } 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 扩展: 在MS TEST V2中,微软提供了一定的扩展支持,如下图所示(这些扩展也大部分支持MS TEST V1) ...