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

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

新規登録して質問してみよう
ただいま回答率
85.46%
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Q&A

1回答

3797閲覧

C# 単体テストから対象のクラスが参照できない問題について

Jhat

総合スコア0

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

0グッド

0クリップ

投稿2021/05/01 05:52

前提・実現したいこと

C# visual studio 2017で単体テストを実施したい。

発生している問題・エラーメッセージ

visual studio 2017 C# で単体テストを実施を試みましたが、 単体テストからテスト対象のクラスが参照できません。 型または名前空間の名前””が見つかりませんでした。というエラーが表示されます。

該当のソースコード

C#

1 2//Program.cs 3using System; 4using System.Collections.Generic; 5using System.Linq; 6using System.Text; 7using System.Threading.Tasks; 8 9namespace ConsoleApp1 10{ 11 class Program 12 { 13 static void Main(string[] args) 14 { 15 } 16 public class Calc 17 { 18 public static int Add(int num1, int num2) 19 { 20 return num1 + num2; 21 } 22 } 23 } 24} 25 26//UnitTest1.cs 27using System; 28using Microsoft.VisualStudio.TestTools.UnitTesting; 29using ConsoleApp1; 30 31namespace UnitTestProject1 32{ 33 [TestClass] 34 public class UnitTest1 35 { 36 [TestMethod] 37 public void TestMethod1() 38 { 39 var calc = new Calc(); //エラー発生箇所 40 41 Assert.AreEqual(expected: 17, actual: answer); 42 } 43 } 44} 45

試したこと

https://anderson02.com/cs/tdd/tdd1/
上記webページを参考に単体テストの実装を試みました。
ソースコードを記述後、UnitTest1.csの
var calc = new Calc();
の行でCalcクラスがないとエラーが発生しています。
namespace ConsoleApp1 の参照をUnitTest1.csのヘッダー部分にusingしましたが
結果に変わりはありませんでした。
他に何か足りない作業等ありましたらご教示お願いいたします。

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

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

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

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

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

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

guest

回答1

0

クラスCalcは、入れ子にされたクラスになっています。
Programクラス以外で使用する場合は、Program.Calcと記述する必要があります。
入れ子にされた型

また、Programでの修飾子が省略されている為、internal となっています。
プロジェクトの構成次第では、アクセスできない場合がありますので、ご注意下さい。

投稿2021/05/01 13:09

YT0014

総合スコア1708

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.46%

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

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

質問する

関連した質問