I'm working with .NET and getting this error, It's my first time doing this so I'm really not sure how to fix this. I have two files that I'm working with, one is called "UnitTest1.cs" which is where the error is occurring and it's saying it occurs on line 12 in regards to the 'ValuesController' and that code is right here
using System;
using Xunit;
using SimpleAPI.Controllers;
namespace SimpleAPI.Test
{
public class UnitTest1
{
ValuesController controller = new ValuesController();
[Fact]
public void GetReturnsMyName()
{
var returnValue = controller.Get(1);
Assert.Equal("Mitchell Privett", returnValue.Value);
}
[Fact]
public void Test1()
{
}
}
}
I'm not sure if this other file affects it or not, but it's in the same directory and it's called SimpleAPI.Test.csproj and the code for that is here:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net6.0</TargetFramework>
<Nullable>enable</Nullable>
<IsPackable>false</IsPackable>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Swashbuckle.AspNetCore" Version="6.2.3" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.11.0" />
<PackageReference Include="xunit" Version="2.4.1" />
<PackageReference Include="xunit.runner.visualstudio" Version="2.4.3">
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
<PrivateAssets>all</PrivateAssets>
</PackageReference>
<PackageReference Include="coverlet.collector" Version="3.1.0">
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
<PrivateAssets>all</PrivateAssets>
</PackageReference>
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\src\SimpleAPI\SImpleAPI.csproj" />
</ItemGroup>
</Project>
CodePudding user response:
The class ValuesController
is not defined.
Include the according library with the using
statement:
using MyLibraryThatContainsValuesController;
CodePudding user response:
In your test project, add a project reference to your main project (SimpleAPI) if you haven't done already. If you're using Visual Studio Community, you can do so by right clicking on your test project file (SimpleAPI.Test) in the solution explorer -> Add -> Project Reference... -> mark the checkbox next to the SimpleAPI -> click OK
If the problem's still there, go back to your test project and add a using
statement refering to the namespace of the ValuesController
class. If you don't know the namespace, open your ValuesController
class. On top of the code (after using
statements) you'll see something like:
namespace SimpleAPI.Controllers
There's your namespace!