小编Tom*_*lar的帖子

如何在django中强制执行异常以便在django中测试它

我真的在寻找如何修补Whatever.objects.get_or_create,但我无法得到任何建议或想法如何去做.

好吧,我的问题是我有这样的事情:

def create_and_get_object(
    name, request, save_url=True, data=None):

    try:
        (object_type_, created) = Object.objects.get_or_create(
            name=name)
        try:
        ...
    except Exception:
        obj = None
        msg = ("Failed to get or create object `Object` with"
                "name='%s'" % name)
        logger_.exception(msg, extra={'request': request})
    return obj
Run Code Online (Sandbox Code Playgroud)

所以,我想测试一下Object.objects.get_or_create会抛出异常...

我正在尝试,Mock(side_effect=Exception())但我真的不知道如何使用它来得到我所期望的.

所有这些都可以获得该函数的100%覆盖率(不包括异常行),还有许多其他例外情况.

测试这个的正确方法是什么,这样的代码是什么?

我究竟做错了什么?

python django unit-testing exception mocking

4
推荐指数
1
解决办法
2045
查看次数

在量角器测试中使用工厂

经过大量的搜索和尝试如何在e2e测试中使用工厂,我决定最后在这里问.

我有一个工厂定义,有一些功能,如下:

regFormApp.factory('myFactory', ['$moment', function($moment) {
        return {
            title: 'Super Title 2014!',
            dates: [
                {
                    date: '2014-10-21',
                    time: '08:30',
                    timezone: 'America/Mexico_City'
                },
                {
                    date: '2014-10-22',
                    time: '08:30',
                    timezone: 'America/Mexico_City'
                }
            ],
            prices: {
                earlyBird: 1250,
                twoMonths: 1375,
                last: 1700
            },
            salesEndDates: function(ticketType) {
                var endDate = this.dates[0].date;
                switch (ticketType) {
                    case 'earlyBird':
                        endDate = '2014-07-19';
                        break;
                    case 'twoMonths':
                        endDate = $moment(endDate)
                                .subtract('months', 2)
                                .format('YYYY-MM-DD');
                        break;
                    default:
                        break;
                }
                return endDate;
            },
            getSalesPeriod: function(_format) {
                var format = _format || 'YYYY-MM-DD'; …
Run Code Online (Sandbox Code Playgroud)

angularjs angularjs-factory protractor

2
推荐指数
1
解决办法
1308
查看次数