私は通常、ラズベリーパイで実行されるロボット用のソフトウェアに取り組んでいます。 2つのファイルの輸入を考えてみましょう:Pythonモックとライブラリがインストールされていない
motor.py
(モーターを実行します):
from RPi import GPIO as gpio
とclient.py
(サーバーと通信し、モータにコマンドを中継):
from rpi.motor import Motor
両方のファイル__init__.py
と__main__.py
を含むrpi
というディレクトリにあります。 RPi
パッケージは、非RPiデバイスにはインストールできません。しかし、私はまだclient.py
の機能をテストしたいと思います。
import unittest
from unittest import mock
# Location A
class TestClient(unittest.TestCase):
# Location B
setUp(self):
# Location C
pass
もともと、私はLOCAでfrom rpi.client import Client
を試してみましたが、それは存在しないRPI、からGPIOをモーターをインポートし、インポートしようとしたので、それが失敗しました。また、私はあまりにも、LOCAでRPi
をからかってみましたが、それはどちらか動作しませんでした。self
後mock_motor
の追加など(LocBでmock.patch("rpi.client.Motor")
を試みたが、10ccのでClient
を輸入し、それは同様に失敗しました。
あなたはどのようにモックありませんお使いのシステムにインストールされていないライブラリーアウト
ライブラリがPiでのみ動作する場合は、Piでテストを実行しないでください。そうすれば、何も複雑にする必要はありません。 – davidism
私はいつもPiにアクセスすることができないので。私は自分のコンピュータ上で開発してから、githubにプッシュしてPiにプルします。しかし、私はコミットする前にむしろテストするでしょう。 –