質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Python 2.7

Python 2.7は2.xシリーズでは最後のメジャーバージョンです。Python3.1にある機能の多くが含まれています。

Q&A

解決済

1回答

2278閲覧

ユニットテストでテストを実行するとエラーが出る

Casablanca_mtg

総合スコア209

Python 2.7

Python 2.7は2.xシリーズでは最後のメジャーバージョンです。Python3.1にある機能の多くが含まれています。

0グッド

0クリップ

投稿2017/03/18 00:05

お世話になります
下記のファイルをC:\Users\mtg-1\Anaconda2において試すとエラーが出ます
理由がわからないのでお教えいただけませんか(コードが間違っている?)

# -*- coding: utf-8 -*- import unittest class CatalogueTestCase(unittest.TestCase): def setUp(self): self.products = [] self.catalogue = Catalogue(self.products) self.product = Product('A') def test_init(self): self.assertFalse(self.product in self.catalogue) def test_add_success(self): self.catalogue.add(self.product) self.assertTrue(self.product in self.catalogue) def test_add_duplicate_error(self): self.catalogue.add(self.product) new_product = Product('A') self.assertRaises(IntegrityError, self.catalogue.add, new_product) self.assertEquals(self.product, self.catalogue['A'] self.assertNotEquals(new_product, self.catalogue['A'] class Product(object): def __init__(self, name): self.name = name class Catalogue(object): def __init__(self, products): self.products = products def add(self, product): if product in self: raise IntegrityError('duplicated') self.products.append(product) def __contains__(self, product): return any(p.name == product.name for p in self.products) def __getitem__(self, name): try: return (p for p in self.products if p.name == name).next() except StopIteration: raise KeyError() class IntegrityError(Exception): pass if __name__ == '__main__': unittest.main()

実行したのは
C:\Users\mtg-1>cd C:\Users\mtg-1\Anaconda2

C:\Users\mtg-1\Anaconda2>python catalogue_test.py
File "catalogue_test.py", line 18
self.assertNotEquals(new_product, self.catalogue['A']
^
SyntaxError: invalid syntax

構文エラーとなっていますがどこに間違いがあるのかがわからないです
よろしくお願いいたします

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

invalid syntaxになる原因は閉じ括弧 ) が下記2行にないためなのです。

python

1 self.assertEquals(self.product, self.catalogue['A'] 2 self.assertNotEquals(new_product, self.catalogue['A']

修正後のコード

python

1 self.assertEquals(self.product, self.catalogue['A']) 2 self.assertNotEquals(new_product, self.catalogue['A'])

IDE spyder、pycharm をインストールして確認してみるといいかもですー。

投稿2017/03/18 00:14

編集2017/03/18 00:21
umyu

総合スコア5846

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問