Модульные тесты Python - PullRequest
       0

Модульные тесты Python

0 голосов
/ 26 октября 2018

Я новичок в Python, и я написал некоторый код, но нашел трудности для написания тестовых случаев для той же проблемы. Постановка проблемы происходит от здесь . Вот мой код решения:

def get_input_stacks():
  c=list(map(int,input().split()))
  sc=list(map(int,input().split()))
  return c,sc

def Main():
  p,s=map(int,input().split())
  print(" I am calling through main")
  i=0
  differ=list()
  c=list()
  sc=list()
  for i in range(s):
    differ.append([])
  for i in range(p):
    n=0

    c,sc=get_input_stacks()
    dictionary=dict(zip(c,sc))
    c.sort()

    for j in range(s-1):
      if dictionary[c[j]]>dictionary[c[j+1]]:
        n+=1
    differ[n].append(i+1)
  for i in range(s):
    for j in range(len(differ[i])):
      print(differ[i][j])

if __name__ == '__main__':
  Main()

И для тестирования я написал следующий код:

from unittest.mock import patch
import unittest

import confusion

class ContainersTestCase(unittest.TestCase):
  def test_get_input_stacks_processed_input_correctly(self):
    user_input = [ '3 3' '16 24 60' '498 861 589'
                   '14 24 62' '72 557 819' '16 15 69' '435 779 232' ]
    expected_stacks = [ '2' '1' '3' ]

    with patch('builtins.input', side_effect=user_input):
        stacks =confusion.get_input_stacks()
    self.assertEqual(stacks, expected_stacks)

if __name__ == '__main__':
unittest.main()

Но я получаю следующую ошибку:

ERROR: test_get_input_stacks_processed_input_correctly (__main__.ContainersTestCase)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "testing.py", line 26, in test_get_input_stacks_processed_input_correctly
    stacks =confusion.get_input_stacks()
  File "G:\python learn\confusion.py", line 5, in get_input_stacks
    sc=list(map(int,input().split()))
  File "C:\Users\Vanshu Hassija\AppData\Local\Programs\Python\Python37-32\lib\unittest\mock.py", line 951, in __call__
    return _mock_self._mock_call(*args, **kwargs)
  File "C:\Users\Vanshu Hassija\AppData\Local\Programs\Python\Python37-32\lib\unittest\mock.py", line 1010, in _mock_call
    result = next(effect)
StopIteration

1 Ответ

0 голосов
/ 26 октября 2018

Я не уверен, есть ли эти ошибки только в вашем сообщении или также в вашем коде, но просто попробуйте и проверьте следующие части:

  1. Списки в вашем тестовом коде не имеют ", "в качестве разделителя.
  2. Ваш исходный код и тестовый код имеют очень плохой отступ в различных точках.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...