作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我们如何使用 StoryQ 来测试预期出现异常的场景?
最佳答案
就实际代码而言,在测试代码的 .Then
部分,您需要创建一个 Action
或 Func
来确定正在测试的内容,然后在代码的 .Then
部分,您将调用该代码并测试结果。例如:
[Test]
public void AnIllegalOperationThrowsAnException()
{
new Story("My Story)
.InOrderTo("Do achieve something")
.AsA("User")
.IWant("To carry out an operation")
.WithScenario("an exception occurs")
.Given(InitialConditions)
.When(TheIllegalActionIsTaken)
.Then(AnIllegalOperationExceptionIsThrown);
}
private void InitialConditions()
{
}
private Func<string> _operation;
private void TheIllegalActionIsTaken()
{
_operation = () => return MyTestClass.DoesSomethingWrong();
}
private void AnIllegalOperationExceptionIsThrown()
{
try
{
_operation.Invoke();
Assert.Fail("An exception should have been thrown");
}
catch (Exception ex)
{
Assert.That(ex, Is.InstanceOf<IllegalOperationException>(), "The wrong exception was thrown");
Assert.That(ex.Message, Is.EqualTo("Ooops!");
}
}
断言处理可能会稍微整理一下,尤其是您的测试方法没有返回值。例如,FluentAssertions 库可以很好地与 Action(但不是 Func)一起工作,因此代码将是:
_action.ShouldThrow<IllegalOperationException>().WithMessage("Ooops!");
关于bdd - 预期异常的 StoryQ 场景,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4275539/
我们如何使用 StoryQ 来测试预期出现异常的场景? 最佳答案 就实际代码而言,在测试代码的 .Then 部分,您需要创建一个 Action 或 Func 来确定正在测试的内容,然后在代码的 .Th
我在 StoryQ discussion boards 上发布了这个问题,但通过查看对其他问题的(缺乏)回答,那里的事件充其量似乎很少。我想我应该让这里的每个人都试一试。 有没有办法修改或配置输出(输
我想使用 storyQ 将此单元测试转换为 BDD工作单元测试 [Test] public async void CreateNewProjectAndDatabase(
有没有人有在 BDD 中使用现成框架作为规范流与 CQRS 的经验。 我喜欢 Mark Nijhof 的方法,但是我已经将 SpecFlow 用于其他项目。任何人都可以提供一些启示,如果可能的话,举个
我是一名优秀的程序员,十分优秀!