标签: assertions

自信编程的好处

将断言放入代码中有什么意义?自信编程有什么好处?

private void WriteMessage(string message)
{
    Debug.Assert(message != null, "message is null");

    File.WriteAllText(FILE_PATH, message);
}
Run Code Online (Sandbox Code Playgroud)

例如,我们可以检查消息变量并在此处抛出异常.为什么我在这里使用assert?或者这是一个错误的例子,看到断言的好处?

debugging assertions

8
推荐指数
2
解决办法
2062
查看次数

jUnit中的ExpectedException?

是否在jUnit中等效于NUnit的ExpectedException或Assert.Throws <>?

junit nunit assertions expected-exception

8
推荐指数
2
解决办法
1978
查看次数

Java - TestNG:为什么我的Assertion总是在try-catch块中写入时通过

我正在尝试使用一个简单的代码org.testng.Assert来断言2个用例.在第一个用例中,我Fail正确地声明了2个不相等的值.

但是在第二个用例中,当我在try-catch块中断言2个不相等的值时,结果总是返回为 Pass

我的代码如下:

package demo;
import org.testng.Assert;
import org.testng.annotations.Test;
public class Q43710035 
{

    @Test
    public void test1() 
    {
        System.out.println("Within test1");
        int a = 12;
        int b =20;
        Assert.assertEquals(a, b);

    }

    @Test
    public void test2() 
    {
        System.out.println("Within test2");
        int a = 12;
        int b =20;

        try 
        {
            Assert.assertEquals(a, b);
        }catch(Throwable t)
        {
            System.out.println("Exception Occurred");
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我得到的结果是:

Within test1
Within test2
Exception Occurred
PASSED: test2
FAILED: test1
java.lang.AssertionError: expected [20] but found [12]
at org.testng.Assert.fail(Assert.java:94) …
Run Code Online (Sandbox Code Playgroud)

java testng exception-handling try-catch assertions

8
推荐指数
2
解决办法
2826
查看次数

如何在Perl中使用变量断言?

如何在Perl中检查变量是否具有特定值?是否有命令停止脚本的执行以查找其中的一些变量?

我想知道我是否可以使用Pythonic插入实践:

    assert 0, (foo, bar)
Run Code Online (Sandbox Code Playgroud)

以无debuger的方式调试脚本?

python debugging perl assertions

7
推荐指数
4
解决办法
3242
查看次数

自动IllegalArgumentException消息?

我总是检查公共函数的参数,并在出错时抛出异常.(对于私人助手,我使用断言).

像这样:

if( a < 0 || a >= b )
    throw new IllegalArgumentException("'a' must be greater or equal to 0 and 
        smaller than b ");
Run Code Online (Sandbox Code Playgroud)

但是编写这些错误消息总是令我很烦.这条消息对我来说似乎是多余的,因为消息只是对陈述的否定

a < 0 || a >= b
Run Code Online (Sandbox Code Playgroud)

.

我经常会通过重构(在eclipse中)重命名变量,然后消息不会反映更改.或者我改变条件而忘记更改消息.

如果我能写下这样的东西,那就太好了:

assertArgument(a >= 0 && a < b);
Run Code Online (Sandbox Code Playgroud)

这应该引发一个类似的消息的IllegalArgumentException

"violated argument assertion: a >= 0 && a < b."
Run Code Online (Sandbox Code Playgroud)

在C中你可以编写一个宏(实际上在C断言中只是一个宏).有没有一种简单的方法在java中做这样的事情?

谢谢!

java assertions illegalargumentexception

7
推荐指数
1
解决办法
824
查看次数

显示python单元测试中的断言数

phpUnit显示运行的测试次数和断言次数.我目前执行python的单元测试的方式,只显示运行的测试次数.有没有办法计算断言的数量?

python unit-testing assertions

7
推荐指数
1
解决办法
513
查看次数

Symfony功能测试在重定向后断言

我目前正在尝试编写功能测试但是在登录并重定向到新页面后我遇到了问题.一切正常,直到最后一次断言.重定向工作正常,重定向后的内容页面没问题,但我在上次断言时收到错误:断言false为真.在这里我没有发现任何可以帮助我解决类似问题

这是代码:

class DefaultControllerTest extends WebTestCase
{
public function testIndex()
{
    $client = static::createClient(array(),
        array(
            'HTTP_HOST' => 'locahost'

        ));



    $crawler = $client->request('GET', '/login');
    echo $client->getRequest()->getUri();


    $form = $crawler->selectButton('Login')->form(array(
        '_username' => 'user',
        '_password' => 'pass',
    ),'POST');


    $client->submit($form);
    $this->assertTrue($client->getResponse()->isRedirect());
    $client->followRedirect();
    echo $client->getRequest()->getUri();

    print_r( $client->getResponse()->getContent());


    $this->assertTrue($crawler->filter('html:contains("New")')->count() > 0);
}
Run Code Online (Sandbox Code Playgroud)

}

redirect functional-testing assertions symfony

7
推荐指数
1
解决办法
3343
查看次数

如何用FluentAssertions替换Assert.Fail()

目前,我们正在将使用一些代码Assert.IsTrue()Assert.AreEqual()Assert.IsNotNull(),等的基本单元测试断言库C#

我们要使用FluentAssertions,例如 value.Should().BeNull().

Assert.Fail()在某些地方使用了一些测试。我想用什么来有效地替换那些,因为我们要删除每个“ Assert。*”,而我在FluentAssertions中找不到等效的东西?

这是一个例子

[TestMethod, TestCategory("ImportantTest")]
public void MethodToTest_Circumstances_ExpectedResult()
{
    // Arrange
    var variable1 = new Type1() { Value = "hello" };
    var variable2 = new Type2() { Name = "Bob" };

    // Act
    try
    {
        MethodToTest(variable1, variable2);
        // This method should have thrown an exception
        Assert.Fail();
    }
    catch (Exception ex)
    {
        ex.Should().BeOfType<DataException>();
        ex.Message.Should().Be(Constants.DataMessageForMethod);
    }

    // Assert
    // test that variable1 was changed by the method
    variable1.Should().NotBeNull();
    variable1.Value.Should().Be("Hello!");
    // test …
Run Code Online (Sandbox Code Playgroud)

c# unit-testing assertions fluent-assertions

7
推荐指数
1
解决办法
2626
查看次数

如何使用 django 测试系统测试 EmailMultiAlternatives 对象中的替代正文内容?

我在我的视图中有带有文本和 html 内容的 EmailMultiAlternatives 对象:

email = EmailMultiAlternatives(subject=subject, body=message, from_email=sender, to=recipient)
email.attach_alternative(messageHTML, 'text/html')
Run Code Online (Sandbox Code Playgroud)

当我测试消息正文属性的内容包含文本版本时,我不知道如何断言 html 内容:

self.assertHTMLEqual(mail.outbox[0].body, message) # This test passes
self.assertHTMLEqual(mail.outbox[0].<???>, messageHTML) # But here I don't know what to do
Run Code Online (Sandbox Code Playgroud)

email django assertions django-testing

7
推荐指数
1
解决办法
395
查看次数

Julia:在断言中添加自定义消息?

在 Python 中,我可以向断言添加自定义消息以帮助代码开发:

assert False, "Expected true"
Run Code Online (Sandbox Code Playgroud)

我怎样才能在 Julia 中做同样的事情?

assert assertions assertion julia

7
推荐指数
1
解决办法
1954
查看次数